После нашего разговора в комментариях к вопросу у меня есть обновления о моем тесте.
Мне пришлось прекратить это сегодня, но продолжительность теста была почти неделя, как вы можете видеть, глядя на даты. Я могу подтвердить, что WorkManager
& FCM
( без высокоприоритетного ) работал отлично для меня.
То, что я сделал, - независимо от того, что PeriodicWorkRequest
я зарегистрировал, на каждом полученном FCM я ставил в очередь OneTimeWorkRequest
для той же работы, зарегистрированной с PeriodicWorkRequest
Мои условия:
- targetSDK - 27
WorkManager
версия - 1.0.0alpha04
PeriodicWorkRequest
, 15 минут. NetworkType.CONNECTED
ограничения.
com.google.android.gms:play-services-gcm:11.8.0
- Push (без высокого приоритета) отправляется каждые 1 час , если работа не запускалась
- Испытательные устройства: Galaxy S8, Huwawei P20 Lite, Galaxy S7, Pixel 2. (Все работает Oreo)
- Приложение было убито после установки, и я вообще не открывал его во время теста
Поведение варьировалось от устройства к устройству, но общее поведение было следующим:
В первые дни (например, 3 для Galaxy S8) работа выполнялась каждые ~ 15 минут, остальные дни - каждые 1-5 часов. Для моей работы в качестве фона и работы от батареи это было идеально. И это лучше, чем раз в день без толчков, как вы описали.