我正在使用 LiveData 的版本“androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha05”。一旦我的 LiveData 块成功执行,我想明确触发它再次执行,例如
我有一个片段,用于观察我的 LiveData,一个带有 LiveData 和 Repository 的 ViewModel:
视图模型:
Run Code Online (Sandbox Code Playgroud)fun getUserLiveData() = liveData(Dispatchers.IO) { val userData = usersRepo.getUser(userId) emit(userData) }
分段:
Run Code Online (Sandbox Code Playgroud)viewModel.getUserLiveData.observe(viewLifecycleOwner, androidx.lifecycle.Observer {..
然后我试图实现这样的期望行为:
Run Code Online (Sandbox Code Playgroud)viewModel.deleteUser() viewModel.getUserLiveData()
根据下面的文档,如果 LiveData 块已成功完成,并且如果我在 LiveData 块中放了一个while(true),则不会执行以下文档,然后我的数据会刷新,但是我不希望这样做,因为我需要更新我的反应性地看待。
如果[block]成功完成或由于[LiveData]变为非活动以外的原因被取消,即使[LiveData]经过活动非活动周期后也不会重新执行。
也许我错过了如何重用相同的 LiveDataScope 来实现这一目标?任何帮助,将不胜感激。
android kotlin android-livedata android-viewmodel kotlin-coroutines