обрабатывать сокет соединения в фоновом режиме для API 28 - PullRequest
0 голосов
/ 07 ноября 2018

До API 28 я могу просто запустить фоновый сервис и постоянно прослушивать сокетное соединение для любых входящих данных Однако в последние изменения в API 28, как показано здесь https://developer.android.com/about/versions/oreo/background#services я больше не могу запускать фоновую службу в Android 9, если она не охватывает только один из следующих случаев

При определенных обстоятельствах фоновое приложение помещается на временный Белый список на несколько минут. Пока приложение находится в белом списке, оно можно запускать сервисы без ограничений и свои фоновые сервисы разрешено бегать. Приложение помещается в белый список, когда оно обрабатывает задачу, которая видна пользователю, например:

Обработка высокоприоритетного сообщения Firebase Cloud Messaging (FCM).
Получение трансляции, такой как SMS / MMS-сообщение. Выполнение PendingIntent из уведомления. Запуск VpnService до того, как приложение VPN продвигается на передний план.

Единственный вариант, который я нашел, - запустить службу в качестве переднего плана. Я уже нашел какую-то альтернативу, такую ​​как использование JobScheduler или WorkManger, но я не думаю, что они могут удовлетворить мои требования

поэтому у меня вопрос, есть ли другой способ прослушивания сокетного соединения, предназначенного для android 9 (api 28), кроме использования службы переднего плана?

1 Ответ

0 голосов
/ 07 ноября 2018

Хороший вопрос. Я также выжил со службой. Служба Foreground также не лучшее решение для Android 9. Причина, из-за обстоятельств системных ресурсов, служба Foreground также может быть уничтожена.

Лучше вы можете использовать WorkManager. Это даст вам хороший вкус.

Дайте попробовать.

...