Как правильно использовать новый WorkManager
из Android Jetpack для планирования периодической работы один раз в день, которая должна выполнять определенные действия ежедневно и ровно один раз?
Идея состояла в том, чтобы проверить,работа с данным тегом уже существует с использованием WorkManager
и для начала новой периодической работы иначе.
Я пытался сделать это, используя следующий подход:
public static final String CALL_INFO_WORKER = "Call worker";
...
WorkManager workManager = WorkManager.getInstance();
List<WorkStatus> value = workManager.getStatusesByTag(CALL_INFO_WORKER).getValue();
if (value == null) {
WorkRequest callDataRequest = new PeriodicWorkRequest.Builder(CallInfoWorker.class,
24, TimeUnit.HOURS, 3, TimeUnit.HOURS)
.addTag(CALL_INFO_WORKER)
.build();
workManager.enqueue(callDataRequest);
}
Но value
всегда равно нулю, даже если я поместил точку останова в метод Worker
doWork()
(так что он определенно выполняется) и проверил рабочий статус из другого потока.