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

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

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

1 Ответ

0 голосов
/ 27 мая 2018

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

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

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

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

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

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

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

...