бесконечный запуск службы в Android

Я пытался создать службу в Android, чтобы она бесконечно прослушивала веб-сокет, а затем, когда полученное сообщение выдавало уведомление. запускается трансляция, а затем из трансляции сервис запускается снова. Но ни один из этих методов, кажется, не поддерживает мою службу, когда мое приложение убито.

Некоторые из ответов, которые я получил, заключались в том, что службы не могут работать бесконечно, тогда как WhatsApp или другие приложения для обмена сообщениями всегда работают в фоновом режиме.


person Rahul Bg    schedule 27.05.2018    source источник


Ответы (1)


Наиболее распространенный учебник, с которым я столкнулся, — это тот, в котором я создаю службу, и при ее уничтожении запускается широковещательная рассылка, а затем из этой трансляции служба запускается снова.

Этот метод определенно не будет работать на Android 8.0+.

бесконечный запуск службы в Android

Это невозможно вообще и определенно невозможно на Android 8.0+. Самое близкое, что вы можете сделать, это запустить службу переднего плана (через startForeground() и Notification) и вернуть START_STICKY или START_REDELIVER_INTENT из onStartCommand(). Android должен перезапустить вашу службу, если ваш процесс завершен.

Я ожидаю, что ваш код не будет работать, когда устройство переходит в режим ожидания или режим ожидания приложения на Android 6.0+, если только пользователь не добавит ваше приложение в белый список оптимизации батареи.

как WhatsApp или другие приложения для обмена сообщениями всегда работают в фоновом режиме.

Скорее всего, нет. Скорее всего, они используют Firebase Cloud Messaging (FCM). Такие бренды, как WhatsApp, также могут заключать сделки с производителями устройств, чтобы получить льготы, если обе стороны считают, что такая сделка будет хорошей идеей.

person CommonsWare    schedule 27.05.2018
comment
+1 к этому, используйте push-сообщения для отправки высокоприоритетных сообщений на устройство, когда вы хотите показать уведомление. Просто добавим, что WhatsApp не получает каких-либо льгот в Android (хотя, по вашему мнению, у них может быть сделка с Samsung или другим OEM-производителем). - person Shmuel; 28.05.2018