Вы не сможете запускать фоновые службы, долго работающие в Oreo, поскольку есть изменения в поведении, теперь Oreo оптимизирует системную память, батарею и т. Д. c, она убивает фоновый сервис, чтобы решить вашу проблему, вы должны использовать сервис переднего плана.
Посмотрите на пределы фонового выполнения https://developer.android.com/about/versions/oreo/android-8.0-changes
Предложение от меня, если вы можете использовать FCM, тогда go для него, потому что такие приложения, как WeChat, Facebook использует его для доставки уведомлений, и они не сталкиваются с какими-либо проблемами.
Альтернативное решение, которое я выбрал без FCM из-за требования клиента запустить службу, которая обновляет местоположение в фоновом режиме. Вот шаги ниже: -
- Вам нужно запустить свою фоновую службу с отображением уведомлений в Oreo и выше.
- После этого вам нужно помнить, что через некоторое время позвоните переходит в режим ожидания, поэтому вам также нужно решить эту проблему:
- Кроме того, для приложения также должна быть отключена оптимизация батареи.
- В некоторых пользовательских ПЗУ необходимо управлять разрешением автоматического запуска для перезапустите службу, если служба была прервана android.
- . И самое главное, если служба прервана системой android, затем отправьте широковещательное сообщение получателю широковещательной рассылки, чтобы перезапустить ваш Служба еще раз
Надеюсь, что вы будете делать еще некоторые исследования и разработки. Я поделился своим опытом и процессом, с помощью которого я сделал то же самое для запуска службы в фоновом режиме.