如何正确地使用Android Jetpack中的新WorkManager
安排每天一次的定期工作,该工作每天应做一些 Action ,并且恰好一次?
这个想法是使用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()
始终为空。 最佳答案
您现在可以使用enqueueUniquePeriodicWork
方法。它是在WorkManager的1.0.0-alpha03版本中添加的。
关于android - 使用WorkManager的定期日常工作请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50357066/