【发布时间】:2020-01-22 12:46:53
【问题描述】:
我正在尝试从 WorkManager 的 doWork() 方法进行 API 调用。我收到MutableLiveData 和回复列表。如何将此复杂对象设置为 WorkManager 的输出。
请在下面找到相同的实现:
class FetchWorkManager(context: Context, params: WorkerParameters): Worker(context,params) {
var postInfoLiveData: LiveData<List<PostInfo>> = MutableLiveData()
@SuppressLint("RestrictedApi")
override fun doWork(): Result {
fetchInfoFromRepository()
//setting output data
val data = Data.Builder()
.putAll(postInfoLiveData)
//.put("liveData",postInfoLiveData)
.build()
return Result.success(data)
}
fun fetchInfoFromRepository(){
val retrofitRepository = RetrofitRepository()
postInfoLiveData = retrofitRepository.fetchPostInfoList()
}
}
谁能帮我解决这个问题。
【问题讨论】:
-
您可以将响应列表数据存储在
Room Database中,即使您的应用程序正在后台运行 -
但是如何在 doWork() 方法中设置从 Web 服务接收的 LiveData。对于原始对象,这很好。有没有办法将自定义对象(如 LiveData)设置为输出数据
标签: android android-jetpack android-mvvm