0

Хорошо, поэтому я попытаюсь объяснить одну проблему за раз, чтобы вы могли понять проблемы, которые у меня есть, и, надеюсь, кто-то сможет скажи мне мотыгу, чтобы это исправить. Таким образом, мое приложение работает отлично, но мои пользователи жалуются на высокий уровень использования бара, и в среднем он работает там, где от 120 мб до 200 мб IDLE, что я согласен, не так, поэтому я пошел вперед и вспомнил трюк, который я использовал в предыдущем проекте, и что была эта строка кода android: hardwareAccelerated = "false". Это удаляет около 10 МБ оперативной памяти за активность, но я все еще сижу около 90 мб, поэтому я пошел и посмотрел немного сложнее, и нашел этот андроид: process = ": ProcessName">, который заставляет мое приложение использовать 100 МБ для простого 8 МБ . Но я сталкиваюсь с проблемой при этом, и это тот факт, что у меня есть LocalBroadcastManager в деятельности службы, которая отправляет данные в мою MainActivity, и когда у этих двух есть разные процессы, они не общаются друг с другом, и если я совмещаю их в тот же процесс снова всплески использования. Поэтому я немного зациклился на том, что делать в этот момент, и я отказываюсь использовать отладчик Android Memory, потому что он не говорит мне, что я держусь за то, что мой код делает неправильно. Вполне буквально у меня есть 5 текстовых просмотров и изображение внутри моей MainActivity, поэтому я знаю, что это не так интенсивно! Если кому-то нужен код, пожалуйста, дайте мне знать, но я решил, что кому-то действительно не нужно смотреть на код, чтобы ответить на это!LocalBroadcastManager, android: process = ": ProcessName", слишком много использования бара

ответ

0

Вы писали:

Но я столкнулся с проблемой, делая это, и тот факт, что у меня есть LocalBroadcastManager в деятельности службы, которая отправляет данные на мой MainActivity и когда эти две разные процессы они не общаются друг с другом, и если я объединю их в один и тот же процесс, использование всплесков еще раз.

Вы можете сохранить свою Службу в отдельном процессе и привязать ее к первому процессу приложения через IPC, межпроцессную связь.

См:

http://developer.android.com/guide/components/bound-services.html

Есть разные способы сделать IPC. Опция Messenger может быть хорошей отправной точкой для вас:

http://developer.android.com/guide/components/bound-services.html#Messenger

Из документации:

Если вам нужен сервис для связи с удаленными процессами, то вы можете использовать Посланник, чтобы обеспечить интерфейс для вашего сервиса. Этот метод позволяет выполнять межпроцессную связь (IPC) без необходимости использования AIDL.

Смежные вопросы