如何使用Workmanager / PeriodicWorkRequest保持时间间隔之间的数据

问题描述 投票:0回答:1

我需要在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);
android android-workmanager
1个回答
0
投票

您的过程可能在工作项目之间终止。因此,如果您希望保留数据,请将其保存在文件(数据库,SharedPreferences等)或服务器中。

© www.soinside.com 2019 - 2024. All rights reserved.