WorkManager为Result.success()调用onStopped()

时间:2019-03-13 10:45:28

标签: android android-workmanager

当我做对的时候,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-rc01中的androidx.work:work-runtime-ktx

是否有(可靠的)方式通知工人何时“正常完成”以及何时“异常停止”?

我认为后一种情况是onStopped()发挥作用的地方。也许是错误吗?

1 个答案:

答案 0 :(得分:0)

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

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