【发布时间】:2021-05-03 14:09:42
【问题描述】:
我在我的应用程序中使用 MVVM 作为架构,但我在观察者代码中看到了一个意想不到的场景:在观察者内部总是输入一次才能获得真正的价值。
myViewModel.getUserInfo().observe(this, androidx.lifecycle.Observer { user ->
if (user!= null) {
} else {
//THE FIRST TIME THROW HERE
}
在我的 viewModel 我有这个:
class MyViewModel : ViewModel() {
fun getUserInfo(): MutableLiveData<UserInfoResponse> {
val liveData: MutableLiveData<UserInfoResponse> = MutableLiveData()
liveData.postValue(UserInfoResponse("user"))
return liveData
}
谁能知道正在发生的事情? 谢谢
【问题讨论】:
-
你可以试试吗?
observe(viewLifeCycleOwner) { user -> }? -
我得到了同样的结果。
-
这就是异步的工作原理,也是预期的行为