我需要在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
等)或服务器中。