如何确保WorkManager取消我的工人?

时间:2018-12-25 18:28:34

标签: android android-architecture-components android-workmanager

WorkManager文档中提到取消工作人员是尽力而为

  

WorkManager尽最大努力取消任务,但这是   本质上不确定-任务可能已经在运行或完成   您试图取消它

如果我有一个强制使用{strong> 强制取消Worker的用例怎么办?

1 个答案:

答案 0 :(得分:1)

撰写本文时,WorkManager只能尽最大努力取消工作。特别是,如果计划将某个任务运行,并且您将其取消,WorkManager将从计划中删除它。

但是,如果任务已经在运行,则WorkManager无法安全地中断它。最好的选择是您编写Worker类时要注意外部取消。在Working with WorkManager talk (around minute 15)中已记录在Android开发者峰会2018中。

要成为好公民,您可以使用ListenableWorker.isStopped()方法合并WorkManager。您可以将其与onStopped回调结合使用,以在您或操作系统请求停止任务时清理代码。