Android Ошибка обратного вызова WorkManager setProcess - PullRequest
0 голосов
/ 28 мая 2020

Странный вопрос о WorkManager

 val testWorker = OneTimeWorkRequestBuilder<TestWorker2>().build()
        WorkManager.getInstance(this).getWorkInfoByIdLiveData(testWorker.id).observe(this,
            Observer { workInfo ->
                workInfo?.let {
                    var process = it.progress.getInt("Process", 0)
                    Log.i(TAG, process.toString())
                }

            })
        WorkManager.getInstance(this).enqueue(testWorker)

class TestWorker2(appContext: Context, workerParams: WorkerParameters) :
    CoroutineWorker(appContext, workerParams) {
    override suspend fun doWork(): Result {
        setProgress(workDataOf("Process" to 50))
        delay(1000L)
        setProgress(workDataOf("Process" to 100))
        return Result.success()
    }
}

Результат печати

com.android.jetpack.workmanager I/MainActivity: 0
com.android.jetpack.workmanager I/MainActivity: 0
com.android.jetpack.workmanager I/MainActivity: 50
com.android.jetpack.workmanager I/WM-WorkerWrapper: Worker result SUCCESS for Work [ id=631a6764-4432-4353-8341-33b3d7a472a4, tags={ com.android.jetpack.workmanager.MainActivity$TestWorker2 } ]
com.android.jetpack.workmanager I/MainActivity: 0

Последний прогресс (100) не печатается, почему такой результат? кто-нибудь знает причину?

...