Когда я правильно понял, следует вызвать onStopped()
, когда Worker
был ненормально остановлен / отменен. Не тогда, когда его работа правильно закончена. Это правильно?
https://developer.android.com/reference/androidx/work/ListenableWorker#onstopped
Этот метод вызывается, когда этому рабочему было приказано остановиться. Это может произойти из-за явного сигнала отмены пользователем или потому, что система решила выгрузить задачу. В этих случаях результаты работы будут игнорироваться WorkManager.
В моем случае все наоборот:
При возврате из doWork()
с Result.success()
тогда onStopped()
называется , а при возврате Result.failure()
это не так.
При вызове WorkManager.getInstance().cancelWorkById(id)
onStopped()
также вызывается (хотя это кажется правильным).
Я использую 2.0.0-rc01
из androidx.work:work-runtime-ktx
.
Есть ли (надежный) способ получить информацию, когда работник "нормально закончил" и когда он был "ненормально остановлен"?
Я думаю, что в последнем случае onStopped()
вступает в игру. Возможно, это ошибка?