如何使用Workmanager / PeriodicWorkRequest保持时间间隔之间的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Workmanager / PeriodicWorkRequest保持时间间隔之间的数据相关的知识,希望对你有一定的参考价值。
我需要在IntervalWork类中使用一个变量,以在不同的调用或间隔中保持其数据。在类中将变量设置为静态或全局无效。怎么做?
IntervalWork('keep'总是丢失它的值):
public class IntervalWork
static int keep;
public result doWork()
keep++;
MainActivity:
Constraints IntervalWorkerCS = new Constraints.Builder()
.setRequiresBatteryNotLow(true)
.build();
//W/WM-WorkSpec: Interval duration lesser than minimum allowed value; Changed to 900000(15 minutes)
PeriodicWorkRequest periodicWork = new PeriodicWorkRequest.Builder(IntervalWork.class, 15, TimeUnit.MINUTES)
.setConstraints(IntervalWorkerCS)
.setInitialDelay(delay,TimeUnit.MINUTES)
.addTag("MyID")
.build();
WorkManager.getInstance(this).cancelAllWork();
WorkManager.getInstance(this).enqueueUniquePeriodicWork("MyID", ExistingPeriodicWorkPolicy.KEEP, periodicWork);
答案
您的过程可能在工作项目之间终止。因此,如果您希望保留数据,请将其保存在文件(数据库,SharedPreferences
等)或服务器中。
以上是关于如何使用Workmanager / PeriodicWorkRequest保持时间间隔之间的数据的主要内容,如果未能解决你的问题,请参考以下文章
Android Jetpack 从使用到源码深耕调度任务组件WorkManager 从实践到原理
如何使用Workmanager / PeriodicWorkRequest保持时间间隔之间的数据
如何让 Flutter Workmanager 插件和 Location 插件一起工作