android - 临时禁用 WorkManager 的 Workers
问题描述
在我的公司,我们有一个用例,我们需要禁用所有正在运行的工作人员,在做一些其他工作之后我们可以再次启用它们,有没有办法我可以直接使用 WorkManager 做到这一点,或者我将不得不回退cancelAllWork*()
并加入新的队列从头开始工作,我不想做后者我只想暂停当前工作人员并在我们完成其他工作后再次恢复他们,有什么解决方案吗?
解决方案
Jetpack WorkManager 不支持暂停/恢复当前 Worker,您可能希望将此作为功能请求添加到公共问题跟踪器上。
正如您所写的那样,一种选择是取消所有工作并管理正在运行的工作人员的停止,如WorkManager 的文档中所述。
另一种选择可能是用一个标志来控制所有工作人员,您可以检查“工作”当前是否已暂停。在这种情况下,您可以返回一个Result.retry()
. 在这种情况下,对工作重试中引入的延迟以及暂停后已经运行的工作人员有什么要求(它们是运行完成还是在工作重新启动后停止并重试)有一些影响。
推荐阅读
- java - 导航抽屉活动在 android studio 中关闭,但我不知道为什么?
- python - 过滤数据帧时如何修复内存错误?
- ms-access - 更新问题 MS Access/C#
- crystal-reports - System.IO.FileLoadException:无法加载文件或程序集“log4net”
- php - 新项目找不到 Symfony 5.1.2 页面
- python - Python:替换 JSON 文件中的字符串
- android - 工具栏不会在滚动时隐藏
- r - 从第二个 Dataframe 中提取与第一个 Dataframe 相比新添加的行
- pandas - 对于数据框:一个系列的真值是模棱两可的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()
- confluent-schema-registry - Flink statefun 和融合模式注册表兼容性