【问题标题】:Disable WorkManager's Workers temporary临时禁用 WorkManager 的 Workers
【发布时间】:2021-11-21 16:57:37
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2022-08-04
    • 2013-07-31
    • 1970-01-01
    • 2010-09-10
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多