Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Jetpack workmanager不支持';我不会再成功了_Android_Android Workmanager - Fatal编程技术网

Android Jetpack workmanager不支持';我不会再成功了

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

我正在使用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 = 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")
})