WorkManager - 永久删除定期工作人员

Rom*_*iri 6 android android-workmanager

我使用以下代码进行了更新,每三个小时添加一个新的定期工作人员。

fun runCouponValidatorWorker() {
    val constraints = Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()
    val worker = PeriodicWorkRequestBuilder<CouponValidatorWorker>(3, TimeUnit.HOURS).setConstraints(constraints).build()
    WorkManager.getInstance()?.enqueueUniquePeriodicWork("couponValidatorWorker", ExistingPeriodicWorkPolicy.REPLACE, worker)
}
Run Code Online (Sandbox Code Playgroud)

我想发布一个更新,它将“杀死”这个工作人员和这个工作人员的每个预定实例。

什么是最好的方法呢?

Ars*_*vin 7

您是否尝试简单地调用它:

WorkManager.getInstance()?.cancelUniqueWork("couponValidatorWorker")
Run Code Online (Sandbox Code Playgroud)

  • 我不认为这是正确的(不再?)。查看 WorkManagerImpl 中的代码似乎允许重新安排工作人员。 (2认同)
  • 该文件没有说“取消所有未来的工作”。它说:取消给定名称的工作链中所有未完成的工作。所以这可能不是解决方案。 (2认同)