如何使用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保持时间间隔之间的数据

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

如何让 Flutter Workmanager 插件和 Location 插件一起工作

Android 架构组件之 WorkManager 的使用指南及项目实践

Android 架构组件之 WorkManager 的使用指南及项目实践