Android Jetpack workmanager不支持';我不会再成功了
我正在使用android.arch.work:work运行时ktx:1.0.0-alpha11,在运行android 7.0的三星Galaxy S8+上遇到了一个问题。与其他设备配合使用,效果良好Android Jetpack workmanager不支持';我不会再成功了,android,android-workmanager,Android,Android Workmanager,我正在使用android.arch.work:work运行时ktx:1.0.0-alpha11,在运行android 7.0的三星Galaxy S8+上遇到了一个问题。与其他设备配合使用,效果良好 val constraints = Constraints.Builder() .setRequiredNetworkType(NetworkType.CONNECTED) .build() val inputData: Data = D
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build()
val inputData: Data = Data.Builder()
.putString(INPUT_DATA_FRONT_URI, front?.toString())
.putString(INPUT_DATA_BACK_URI, back?.toString())
.build()
val work = OneTimeWorkRequestBuilder<LicenseUploadWorker>()
.setConstraints(constraints)
.setInputData(inputData)
.build()
workManager.beginUniqueWork(LICENSE_UPLOAD_WORKER, ExistingWorkPolicy.REPLACE, work)
.enqueue()
从不获取WorkInfo.State.successed
状态更新。从日志中,我可以看到工作完成时没有任何问题:
11-26 12:12:03.693 6820 6852 I WorkerWrapper: Worker result SUCCESS for Work
目前是否有办法解决此问题?您可以通过直接订阅
enqueue()的返回值来观察状态,例如:
val workOperation = workManager.beginUniqueWork(LICENSE_UPLOAD_WORKER, ExistingWorkPolicy.REPLACE, work).enqueue()
workOperation.state.observe(this, Observer { state ->
Timber.d("state: $state")
})
在我的应用程序开发周期中(在不同的设备上),我也遇到了同样的问题。对我来说,解决办法就是简单地卸载我的应用程序。下次我从Android Studio启动它时,一切都正常了。你是如何观察WorkManager返回的LiveData的?WorkManager的代码实验室中有一个例子:我需要远离所有lifecycleOwners(UI)的状态,但最终还是使用LiveData实现了变通方法。
val workOperation = workManager.beginUniqueWork(LICENSE_UPLOAD_WORKER, ExistingWorkPolicy.REPLACE, work).enqueue()
workOperation.state.observe(this, Observer { state ->
Timber.d("state: $state")
})