Повторение задачи в сервисе Foreground в режиме Doze - PullRequest
0 голосов
/ 21 мая 2018

Я работаю над приложением, в котором я должен выполнять некоторые повторяющиеся задачи с фиксированным интервалом (скажем, через 2 минуты), которые должны выполняться даже в режиме ожидания.Мои наблюдения упоминаются ниже -

  1. Выполнение повторяющейся задачи с использованием сигналов тревоги (с использованием флага RTC) не является точным.Система Android пакетирует сигналы тревоги.Если мы используем RTC_WAKEUP, то он лучше, чем RTC, но он показывает количество WAKEUP в Android Vitals, что не очень хорошо.
  2. Jobschedulers полезны, но не будут работать в течение меньшего интервала, например 2 мин.Я пробовал Firebase Jobdispatcher, но это тоже не очень точно, я запустил работу с 2-минутным временем запуска, но оно варьировалось от 10-20 минут.
  3. Использовал обработчики и таймеры для повторения задачи в службе Foreground.В этом сценарии служба Foreground продолжает работать в режиме ожидания, но обработчики и таймер перестают повторять задачу.Я прочитал о Handlers.postDelayed () и обнаружил, что это также зависит от режима ожидания.

Я не хочу приобретать WAKELOCK для этой повторяющейся задачи.

Может кто-нибудь пожалуйстапредложите мне какой-нибудь лучший / более чистый способ, которым мы можем выполнить короткое интервальное повторение задачи в режиме ожидания?

Для справки -

Android: Какой лучший способ сделать повторяющиеся фоновые задачиAndroid Oreo готов?

Как режим ожидания влияет на фоновые / передние службы, с / без частичных / полных пробуждений?

...