使用哪个 TAG 来取消作业
Which TAG to use to cancel the job
PeriodicWorkRequest.Builder有addTag
方法,enqueueUniquePeriodicWork(TAG, policy, periodicWorkRequest)
也有TAG。
问题是要使用哪个 TAG 才能取消所有 MyWorker
任务?会是 MyWorkerTag
还是 MySchedulerClassTag
PeriodicWorkRequest.Builder builder = new PeriodicWorkRequest.Builder(
MyWorker.class,
PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS,
TimeUnit.MILLISECONDS);
builder.addTag("MyWorkerTag");
WorkManager.getInstance().enqueueUniquePeriodicWork("MySchedulerClassTag", ExistingPeriodicWorkPolicy.KEEP, builder.build());
两个 PeriodicWorkRequest.Builder
and OneTimeWorkRequest.Builder
include a [addTag()
6 method that allows you to set a TAG
that you can later use to identify a set of work request to observe or cancel 他们。
在 enqueueUniquePeriodicWork(UniqueName, policy, workrequest)
的情况下,第一个参数是 WorkManager 用来识别每个唯一工作的唯一名称,它与分配给 WorkRequest 的 TAG
无关。
因此,要取消您的工作人员,您应该使用 setTag
方法在 WorkRequest 上设置 TAG
:
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");
文档中提供了更多信息:
PeriodicWorkRequest.Builder有addTag
方法,enqueueUniquePeriodicWork(TAG, policy, periodicWorkRequest)
也有TAG。
问题是要使用哪个 TAG 才能取消所有 MyWorker
任务?会是 MyWorkerTag
还是 MySchedulerClassTag
PeriodicWorkRequest.Builder builder = new PeriodicWorkRequest.Builder(
MyWorker.class,
PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS,
TimeUnit.MILLISECONDS);
builder.addTag("MyWorkerTag");
WorkManager.getInstance().enqueueUniquePeriodicWork("MySchedulerClassTag", ExistingPeriodicWorkPolicy.KEEP, builder.build());
两个 PeriodicWorkRequest.Builder
and OneTimeWorkRequest.Builder
include a [addTag()
6 method that allows you to set a TAG
that you can later use to identify a set of work request to observe or cancel 他们。
在 enqueueUniquePeriodicWork(UniqueName, policy, workrequest)
的情况下,第一个参数是 WorkManager 用来识别每个唯一工作的唯一名称,它与分配给 WorkRequest 的 TAG
无关。
因此,要取消您的工作人员,您应该使用 setTag
方法在 WorkRequest 上设置 TAG
:
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");
文档中提供了更多信息: