小编Ant*_*non的帖子

如何在 Android 中从 WorkManager 获取实时数据


我正在尝试从WorkManagerdoWork()的方法进行 API 调用。我收到了一份回复清单。如何将这个复杂对象设置为 WorkManager 的输出?MutableLiveData

请在下面找到相同的实现:

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()
    }
}
Run Code Online (Sandbox Code Playgroud)

谁能帮我解决这个问题?

android kotlin android-livedata android-jetpack android-workmanager

6
推荐指数
1
解决办法
9602
查看次数