WorkManager文档中提到取消工作人员是尽力而为
WorkManager尽最大努力取消任务,但这是 本质上不确定-任务可能已经在运行或完成 您试图取消它
如果我有一个强制使用{strong> 强制取消Worker
的用例怎么办?
答案 0 :(得分:1)
撰写本文时,WorkManager只能尽最大努力取消工作。特别是,如果计划将某个任务运行,并且您将其取消,WorkManager将从计划中删除它。
但是,如果任务已经在运行,则WorkManager无法安全地中断它。最好的选择是您编写Worker类时要注意外部取消。在Working with WorkManager talk (around minute 15)中已记录在Android开发者峰会2018中。
要成为好公民,您可以使用ListenableWorker.isStopped()
方法合并WorkManager。您可以将其与onStopped
回调结合使用,以在您或操作系统请求停止任务时清理代码。