android - 如何确保 WorkManager 取消我的 Worker?
问题描述
在 WorkManager 文档中提到取消 Worker 是尽力而为
WorkManager 尽最大努力取消任务,但这本质上是不确定的——当您尝试取消任务时,该任务可能已经在运行或完成
如果我有一个用例,在调用其中一种取消方法时必须取消,该怎么办?Worker
解决方案
正如您所写,WorkManager 只能尽最大努力取消工作。特别是,如果一个任务计划运行,而您取消它,WorkManager 会将其从计划中删除。
但是,如果任务已经在运行,WorkManager 不能安全地中断它。最好的选择是编写 Worker 类来处理外部取消。这已在2018 年 Android 开发者峰会上录制的使用 WorkManager演讲(大约 15 分钟)中进行了介绍。
要成为一个好公民,您可以使用以下方法汇集 WorkManager ListenableWorker.isStopped()
:. onStopped
当您或操作系统请求停止任务时,您可以将此与回调结合使用以清理您的代码。
推荐阅读
- python - Python 多处理加速 I/O 和 Groupby/Sum
- excel - 具有 3 个条件的 SUMPRODUCT,1 行和 2 列的索引匹配
- angular - 如何使我的角度应用程序行为异步
- javascript - 在 React 中将图片从一个组件传递到另一个组件
- javascript - 如何根据卡片的选择将详细信息推送和弹出到javascript中的数组中?
- javascript - 根据从表单中选择的值在屏幕上显示数据
- android - Android:更改样式禁用按钮的文本颜色
- python - 在 Python 中对一系列数据进行分类的最佳方法
- json - 在颤动的下拉按钮上显示选定的数据
- html - 如何使背景图像和背景图像中的元素响应?