Я использую WorkManager
версия 1.0.1.
Я создаю WorkRequest
, используя этот код:
Constraints constraints = new Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build();
Data data = new Data.Builder()
.putString(URL_KEY, url)
.putString(DATA_KEY, data)
.build();
OneTimeWorkRequest sendWork = new OneTimeWorkRequest.Builder(SendWorker.class)
.setConstraints(constraints)
.setInputData(data)
.addTag(SEND_WORK_TAG)
.setBackoffCriteria(
BackoffPolicy.EXPONENTIAL,
30,
TimeUnit.SECONDS)
.build();
Когда я вызываю WorkManager.getInstance().enqueue(sendWork)
, работа выполняется просто отлично, но я хочу убедиться, что выполнение является последовательным, поэтому я попытался использовать
WorkManager.getInstance().enqueueUniqueWork(SENDING_WORK_NAME, ExistingWorkPolicy.APPEND, sendWork);
или, как предложено здесь ,
WorkManager.getInstance().beginUniqueWork(SENDING_WORK_NAME, ExistingWorkPolicy.APPEND, sendWork).enqueue();
но работа не выполняется. Почему?
P.S. также пытался добавить ноль или очень маленький setInitialDelay
, но это не помогло.