我正在尝试使用WorkManager实例中存在的getWorkInfoByLiveData方法获取我的WorkerInfo。
val workInfo = workManager.getWorkInfoByIdLiveData(uuid).value
WorkInfo始终为null。另外,我从主线程调用此方法。
我正在检查此方法的情况。当用户发送网络请求时,我尝试让工作人员入队;如果没有连接互联网,我只需向WorkManager注册工作即可。一段时间后,如果我尝试使用UUID获取WorkerInfo,它将始终为我提供null。
注意:调用getWorkInfoByLiveData时,此时未执行Worker。
我不希望WorkManager给我带ENQUEUED状态的WorkInfo。
注意:在添加活动观察者之前,Livedata不会计算该值。
[getWorkInfoByIdLiveData()
返回您需要观察以获取workInfo值的LiveData<WorkInfo>
:
val status = workManager.getWorkInfoByIdLiveData(uuid)
.observe(this, Observer{ workInfo ->
if (workInfo!=null){
// ...
}
}
您可以查看WorkManager's codelab以了解其用法。