Android убивает мое приложение через некоторое время в фоновом режиме - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть приложение, которое отправляет сообщения TCP. Мне нужно, чтобы сообщения отправлялись, пока приложение живо. Итак, я предоставил доступ к оптимизации батареи и добавил все необходимые wake_locks, и все, кажется, работает нормально, даже когда экран выключен. Проблема в том, что я заметил, что каждый раз, когда я оставляю свой телефон с приложением в фоновом режиме, когда я возвращаюсь через несколько часов (или меньше), никакие сообщения не отправляются, и когда я вхожу в мое приложение, оно загружается как новый экземпляр и не как приложение из фона. Что я могу сделать, чтобы мое приложение не убивалось Android?

Полагаю, это то, что происходит

Ответы [ 3 ]

0 голосов
/ 03 марта 2019

Да, как уже упоминали другие, вы должны использовать Сервис для фонового выполнения.

Кроме того, имейте в виду Пределы выполнения фона для Oreo и выше.

Вы также можете посмотреть на JobScheduler для эффективного управления асинхронными задачами.

0 голосов
/ 03 марта 2019
  1. Создайте прозрачное представление размером 1px * 1px на рабочем столе, например, toast. (ОС Android повысит ваш приоритет как приоритетный процесс)
  2. Предложите своему пользователю добавить ваше приложение в белый список. (В некотором роме)
  3. Всегда помещайте уведомление вашего приложения в панель уведомлений. (Также требуется услуга)
  4. создайте процесс защиты, когда ваше приложение умрет, отправьте широковещательную рассылку охраннику и дайте охране перезапустить ваше приложение. когда охранник умрет, отправьте приложение в приложение, и приложение перезапустит вашу охрану.

Будьте осторожны с потреблением батареи и не беспокойте своих пользователей слишком сильно

0 голосов
/ 11 сентября 2018

Вам нужно использовать передний план Сервис ; служба запущена через startForeground().

Сервис не «заново открывает» вашу активность; это компонент вашего приложения, который может быть долгосрочным. Вы можете предпочесть думать об этом как о деятельности без каких-либо представлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...