Является ли WorkerManager надежным способом реализации функции будильника / напоминания в приложении? - PullRequest
0 голосов
/ 26 мая 2018

Мы замечаем, что один AlarmManagerCompat не является надежным способом реализации функции оповещения / напоминания в нашем приложении из-за разного поведения AlarmManager в разных версиях ОС.(Например, режим Doze)

Изначально мы планируем использовать библиотеку Evernote android-job , чтобы помочь нам реализовать функцию будильника / напоминания в нашем приложении.

ОднакоКстати, мы также заметили, что Google просто выпустил WorkerManager.

Пока что WorkerManager хорошо работает для нас, когда мы запускаем несколько разовых фоновых заданий (почти сразу, с ограничением подключения к Интернету) после выхода из приложения.

Мы планируемиспользуйте WorkerManager для реализации функции будильника / напоминания.

Мне было интересно, насколько надежно WorkerManager для реализации такой функции?Кто-нибудь пробовал?Мы нацелены на API 15 и выше.

1 Ответ

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

WorkManager не подходит для всего, что должно запускаться в определенное время, так как задания, в том числе используемые WorkManager или android-job, не будут срабатывать, пока устройство дремлет.

Для точного времени вам следуетобязательно используйте AlarmManagerCompat и, в частности, setExactAndAllowWhileIdle () , который выдает сигнал тревоги точно в указанное время на всех уровнях API.

Поскольку ваш точный таймер может и будет происходить, пока устройстводремлет, ваше приложение не должно требовать подключения к сети, чтобы опубликовать ваше предупреждение / напоминание.В идеале информация должна быть в самом PendingIntent и даже не требовать извлечения из базы данных / и т.д.

...