当我理解正确时,当onStopped()异常停止/被取消时,应调用Worker。不能正确完成工作。这样对吗?

https://developer.android.com/reference/androidx/work/ListenableWorker#onstopped
当告诉此Worker停止时,调用此方法。这可能是由于用户明确发出取消信号,或者是因为系统决定抢占该任务。在这种情况下,WorkManager将忽略工作结果。

就我而言,情况恰恰相反:
doWork()Result.success()返回时,onStopped() 被称为,而在返回Result.failure()时则不是。
调用WorkManager.getInstance().cancelWorkById(id)onStopped() 也称为(尽管这似乎是正确的)。

我正在使用2.0.0-rc01androidx.work:work-runtime-ktx
当工人“正常完成”时和何时“异常停止”时,是否有(可靠)方式得到通知?
我认为后一种情况是onStopped()发挥作用的地方。也许是错误吗?

最佳答案

我也一样请查看此question了解更多详细信息。
该问题已在 2.3.0-alpha02 中修复。当我更新版本时,它可以正常工作。

implementation "androidx.work:work-runtime:2.3.0-alpha02"

关于android - WorkManager为Result.success()调用onStopped(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55140003/

10-10 23:11