【发布时间】:2020-05-06 21:16:23
【问题描述】:
使用的组件:WorkManager
使用的版本:2.3.4
设备/Android 版本复制于:任何
您好 - 我想从 workmanager 队列中删除一个工作人员,即使它已经完成或正在运行。我知道当 Worker 处于 RUNNING 状态时我可以取消它,问题是当它 FINISHED 和 FAILED 我想删除它时。 Workmanager.pruneWork() 删除 WorkManager 中的所有工作人员,但我只想删除一个特定的工作人员。
这是我的场景:
- 我运行一个工人,但它失败了我返回
results.failure() - 现在我有一个屏幕显示所有处于
Failed状态的工人。 - 所有失败的工人我可以选择删除或重试
- 用户点击 (x) 图标可从 UI 中删除 Failed worker 并将其从 WorkInfoList 中删除,使其不再显示。
- 如果没有删除单个 Worker 的选项,那么我如何将其从 WorkInfoList 中删除,以便下次用户转到该屏幕时,他不会看到他删除的 Failed Worker?
- 或者,如果可以选择将状态从 FAILED 更改为 CANCEL,那么我可以忽略已取消的状态?
- 还有多久后 WorkManager 会自动清除其数据库?
任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: android android-workmanager