WorkManager Version = "2.0.1".
I have configured my WorkManager with following code.
WorkManager.getInstance()
.beginUniqueWork("MasterWork",
ExistingWorkPolicy.APPEND,
oneTimeWorkRequest)
Теперь ниже моя конфигурация WorkRequest: -
OneTimeWorkRequest.Builder(WorkerThread::class.java)
.setInputData(InputData)
.setConstraints(constraints)
.setBackoffCriteria(BackoffPolicy.LINEAR,duration, TimeUnit.SECONDS)
.addTag("Tag1")
.build()
Допустим, я добавляю следующую последовательность работы в beginUniqueWork ("MasterWork").
Tag1 ---> This is my first OneTimeWorkRequest
Tag1 ---> After Above
Tag1 ---> After Above
Tag2 ---> This is my first OneTimeWorkRequest
Tag2 ---> After Above
Tag2 ---> After Above
Tag3 ---> This is my first OneTimeWorkRequest
Tag3 ---> After Above
Tag3 ---> After Above
Теперь рассмотрим следующий вариант использования: Сценарий 1 . Теперь если пользователь отменяет ожидаемого работника Tag2 методом WorkManager.cancelAllWorkByTag (Tag2). Теперь отложенные задания для Tag3 никогда не выполняются.
Теперь рассмотрим следующий вариант использования: Сценарий 2 . Теперь, если пользователь отменяет ожидаемого рабочего Tag3 методом WorkManager.cancelAllWorkByTag (Tag3). Теперь ожидающие работы для Tag2 выполняются после завершения всех рабочих Tag1.
Ожидается ли поведение очереди WorkManager? Похоже, что если средняя очередь того же UniqueWork отменяется с помощью метода cancelAllWorkByTag (Tag2), это может привести к разрыву цепочки. Что может быть предпочтительным решением?