android - WorkManager 为 Result.success() 调用 onStopped()
问题描述
当我做对了,onStopped()
应该被调用,当Worker
已经异常停止/被取消时。不是当它的工作正确完成时。这个对吗?
https://developer.android.com/reference/androidx/work/ListenableWorker#onstopped
当此 Worker 被告知停止时,将调用此方法。这可能是由于用户的明确取消信号或系统已决定抢占任务而发生的。在这些情况下,WorkManager 将忽略工作的结果。
就我而言,情况恰恰相反:
从doWork()
with Result.success()
then返回时onStopped()
调用,而在返回Result.failure()
时则不调用。
当调用WorkManager.getInstance().cancelWorkById(id)
onStopped()
也被调用时(虽然这似乎是正确的)。
我正在使用2.0.0-rc01
.androidx.work:work-runtime-ktx
当工人“正常完成”和“异常停止”时,是否有(可靠的)方法来获得通知?
我认为后一种情况将onStopped()
发挥作用。这可能是一个错误吗?
解决方案
我有同样的。请查看此问题以获取更多详细信息。该问题已在2.3.0-alpha02中修复。当我更新版本时,它工作正常。
implementation "androidx.work:work-runtime:2.3.0-alpha02"
推荐阅读
- django - Is there any way to edit the request user in django middleware?
- swift - 视频和屏幕上的不同曝光
- kubernetes - Replicaset 如何包含具有特定标签的 pod
- r - Sankey Network (within R blogdown) won't render properly on Firefox
- sql - Include multiple choices in 'LIKE'
- r - PNG图像在linux服务器节点上但不在头节点上时会产生错误
- angular - 索引号降序排列
- javascript - 如何在 jquery 或 javascript 中单击特定图像?
- c# - 运行 Task.WhenAll(taks) 后如何从 Task 获取数据
- clio-api - Return all fields from API endpoint