Как сохранить данные между интервалами с помощью Workmanager / PeriodicWorkRequest - PullRequest
0 голосов
/ 19 февраля 2020

Мне нужна переменная в классе IntervalWork, сохраняющая свои данные в течение различных вызовов или интервалов. Создание переменной stati c или global в классе не работает. Как?

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);

1 Ответ

0 голосов
/ 19 февраля 2020

Ваш процесс может быть остановлен между рабочими элементами. Итак, если у вас есть данные, которые вы хотите sh сохранить, сохраните их в файле (база данных, SharedPreferences и т. Д. c.) Или на сервере.

...