С Android Oreo существуют ограничения на фоновые сервисы (https://developer.android.com/about/versions/oreo/background).. Насколько я понимаю, push-уведомления используют фоновый сервис. (Да, Android-Oreo также накладывает дополнительные накладные расходы на уведомления с так называемыми каналами, я не верю, что эти детали влияют на push-уведомления.)
Основой push-уведомления является то, что где-то есть открытое tcp-соединение с сервером. В какой-то момент этот сервер отправляет сообщение через это открытое tcp-соединение, оно принимается некоторым кодом и обрабатывается соответствующим образом, что обычно приводит к запуску кода, который генерирует уведомление на устройстве.
Когда приложение переходит в фоновый режим, оно имеет окно из нескольких
минуты, в течение которых разрешено создавать и использовать сервисы. В
в конце этого окна приложение считается бездействующим. В этот
время система останавливает фоновые службы приложения, как если бы
приложение вызвало методы Service.stopSelf () служб.
Простое приложение может просто создать фоновый сервис и реализовать это поведение. Через некоторое время (очевидно, через несколько минут) фоновые службы просто будут остановлены.
Это также говорит об этом.
Во многих случаях ваше приложение может заменить фоновые службы
JobScheduler вакансии.
Звучит как опрос и не подходит для push-уведомлений.
Устраняют ли эти ограничения возможность push-уведомлений? Если нет, как они будут реализованы? Могут ли они быть реализованы без использования Firebase Cloud Messaging?