Почему не срабатывает WorkManager?

Пытаюсь заставить WorkManager периодически запускать написанный мной сервис Logger.java.

В MainActivity.java в метод onCreate добавил:
protected void onCreate(Bundle savedInstanceState) {
...
     WorkManager.getInstance().enqueue(myWorkRequest);
     PeriodicWorkRequest workRequest = new PeriodicWorkRequest.Builder(Logger.class, 15, TimeUnit.MINUTES, 15, TimeUnit.MINUTES).addTag("Logger").build();
     WorkManager.getInstance().enqueueUniquePeriodicWork("Logger", ExistingPeriodicWorkPolicy.KEEP, workRequest);
...
}

Когда я открываю приложение и держу открытым при работающем экране - все работает штатно, раз в 15-30 минут сервис Logger отрабатывает.

Блокирую устройство, через час разблокирую, захожу в приложение - сервис Logger штатно отрабатывает подряд 2-4 раза (количество пропущенных срабатываний WorkManager, очевидно).

Мне же надо, чтобы срабатывания происходили в фоне, неважно - разблокирован экран или нет, открыто приложение на экране или нет.

Что я могу упускать?
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы