android - 临时禁用 WorkManager 的 Workers

标签 android kotlin android-architecture-components job-scheduling android-workmanager

在我的公司,我们有一个用例,我们需要禁用所有正在运行的工作程序,在完成一些其他工作后我们可以再次启用它们,有没有一种方法可以直接使用 WorkManager 来实现,或者我将不得不回退到cancelAllWork*() 并从头开始让新的 worker 入队,我不想做后者我只想暂停当前的 worker 并在我们完成其他工作后再次恢复它们,有什么解决方案吗?

最佳答案

Jetpack WorkManager 不支持暂停/恢复当前 Worker,您可能希望将此添加为 public issue tracker 上的功能请求.

如您所写,一个选项是取消所有工作并管理正在运行的工作人员的停工,如 WorkManager's documentation 中所述。 .
另一种选择可能是用一个标志来检查所有工作人员,以检查“工作”当前是否已暂停。在这种情况下,您可以返回一个 Result.retry()。在这种情况下,对工作重试中引入的延迟有一些影响,以及您对暂停后已经在运行的工作人员的要求是什么(他们是运行完成还是停止并在工作重新启动后重试)。

关于android - 临时禁用 WorkManager 的 Workers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69382245/

相关文章:

java - Android:枚举与静态最终整数?

Java jdom2创建xml的问题

android - 如何在 android kotlin 中的运行时应用按钮样式

android - 为什么使用 JetPack Navigation 导航后会立即调用 fragment 中的 onDestroyView

java - Dagger 2 : Provide same instance between multiple Component with same Scope on different library modules

android-studio - 在Android Studio中使用导航框架时,如何知道保留的类名或关键字?

android - 何时使用 withContext?

android - 房间在访问它存储数据时崩溃

android - Android JetPack 的共享 ViewModel 生命周期

android - Linux perf stat 工具返回零指令计数。我在这里错过了什么?