Android 直接访问时,MutableLiveData的值错误
我有一个模型:Android 直接访问时,MutableLiveData的值错误,android,android-mvvm,Android,Android Mvvm,我有一个模型: class SharedViewModel : ViewModel() { var connected = MutableLiveData(false) fun setConnected(value: Boolean) { connected.postValue(value) } } 设置值时: viewModel.setConnected(true) 然后这样观察: viewModel.connected.observe(viewLifecycleOwner,
class SharedViewModel : ViewModel() {
var connected = MutableLiveData(false)
fun setConnected(value: Boolean) {
connected.postValue(value)
}
}
设置值时:
viewModel.setConnected(true)
然后这样观察:
viewModel.connected.observe(viewLifecycleOwner, {
Log.d(RTAG, "Connected: $it")
})
它按预期工作。但有时我需要直接访问值,而不是像这样观察变化:
viewModel.setConnected(true)
Log.d(RTAG, "Res: "+viewModel.connected.value) //printed old result, why?
然后我得到了旧的结果,为什么呢?
postValue
方法不会立即更改值。它应该在后台线程中使用。尝试使用setValue
,该方法应仅在主线程上调用,并立即设置值。postValue方法不会立即更改值。它应该在后台线程中使用。请尝试使用setValue,它应该只在主线程上调用。@JudeOsbertK请将其作为答案发布。