Оба PeriodicWorkRequest.Builder
и OneTimeWorkRequest.Builder
включают метод [addTag()
6 , который позволяет вам установить TAG
, который вы сможете позжеиспользуется для идентификации набора рабочих запросов для наблюдения или отмены их.
В случае enqueueUniquePeriodicWork(UniqueName, policy, workrequest)
, первые параметры - это уникальное имя, используемоеWorkManager идентифицирует каждую уникальную работу, и она не связана с TAG
, назначенным для WorkRequest.
Итак, чтобы отменить вашего работника, вы должны использовать набор TAG
для WorkRequest с использованием метода setTag
:
PeriodicWorkRequest.Builder builder = new PeriodicWorkRequest.Builder(
MyWorker.class,
PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS,
TimeUnit.MILLISECONDS)
.addTag("MyWorkerTag")
.build();
WorkManager.getInstance(context).enqueueUniquePeriodicWork(
"UniqueName",
ExistingPeriodicWorkPolicy.KEEP,
builder);
// Later on, when needed
WorkManager.getInstance(context).cancelAllWorkByTag("MyWorkerTag");
Более подробная информация доступна в документации: