android – 使用WorkManager的定期日常工作请求

前端之家收集整理的这篇文章主要介绍了android – 使用WorkManager的定期日常工作请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何正确使用 Android Jetpack中的新WorkManager来安排每天一次的定期工作,这应该每天做一次并且只做一次?

我们的想法是使用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);
}

但是值总是为null,即使我在Worker的doWork()方法中放置一个断点(因此它肯定正在进行中)并从另一个线程检查工作状态.

解决方法

您现在可以使用enqueueUniquePeriodicWork方法.它是在WorkManager的1.0.0-alpha03版本中添加的.
原文链接:https://www.f2er.com/android/310491.html

猜你在找的Android相关文章