Периодический запрос на работу не продолжается в фоновом режиме, когда приложение закрыто.Я пробовал занести в белый список приложение на моем Huawei P20 Pro, но оно все равно не работает.
Я пробовал UniquePeriodicWorkRequest, заносил в белый список приложение в диспетчере батарей и т. Д.неделю сейчас.И я не могу заставить его работать так, как должно.
Построение начального периодического запроса на работу из операции:
PeriodicWorkRequest waterScheduler = new
PeriodicWorkRequest.Builder(WaterNotifier.class, 24, TimeUnit.HOURS)
WorkManager.getInstance().enqueue(waterScheduler);
Запрос на работу (WaterScheduler)
public Worker.Result doWork() {
//fire at scheduled time
if (datesB.contains(CalendarDay.today()) && bestScheduleTime ) {
PeriodicWorkRequest waterNotifer = new
PeriodicWorkRequest.Builder(NotificationProvider.class, 15,
TimeUnit.MINUTES)
.addTag(NOTIFIER_TAG)
.build();
WorkManager.getInstance().enqueue(waterNotifer);
isScheduledRequest = true;
return Result.success();
} else {
WorkManager.getInstance().getWorkInfosForUniqueWorkLiveData("WaterNotifier_CurrentDate");
if(isScheduledRequest){
isScheduledRequest = false;
WorkManager.getInstance().cancelAllWorkByTag(NOTIFIER_TAG);
}
return Result.failure();
}
}
}
Наконец, «Поставщик уведомлений» - это просто простое уведомлениекласс, который создает уведомление и возвращает Result.success ();
Мне нужно, чтобы первоначальный периодический запрос на работу срабатывал один раз в 24 часа, чтобы проверить, нужно ли предоставлять уведомление.