You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WorkManager中ExistingWorkPolicy提及的pending状态具体指代什么?

pending(uncompleted)的具体定义

ExistingWorkPolicy描述中提到的pending (uncompleted),特指所有未进入终态的WorkManager任务,对应官方公开的5种任务状态,范围如下:

  • 属于pending的状态:Enqueued(已入队等待调度、延迟待触发的任务都属于该状态)、Running(正在执行中的任务)
  • 不属于pending的终态:Succeeded(执行成功)、Failed(执行失败)、Cancelled(已被取消)

唯一性执行场景的注意事项

如果你需要实现逻辑全局仅能完整执行一次,仅靠ExistingWorkPolicy.KEEP配置是不够的:

  • 当之前的同名任务已经进入Succeeded/Failed/Cancelled终态后,再次提交同名任务时,会因为没有pending任务而成功入队,导致逻辑重复执行
  • 建议额外在本地存储(如SharedPreferences、Room)中持久化一个执行标记,任务执行成功后将标记置为已完成,每次提交任务前先检查该标记,只有未完成时才提交任务

内容的提问来源于stack exchange,提问作者casolorz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:45:04