当在 MutableLiveData 变量上调用 postValue 时,公开的 LiveData 调度如何变化?

How does exposed LiveData dispatch changes when postValue is called on MutableLiveData variable?

在 ViewModel 中:

private var _someData : MutableLiveData<Boolean> = MutableLiveData()
var someData: LiveData<Boolean> = _someData

public fun someMethod(){
    _someData.postValue(true)
}

在片段中:

viewModel.someData.observe(this, Observer {
    //change posted on MutableLiveData but this LiveData received the changes.
})

由于 someData_someData 是 2 个不同的变量,即使在 _someData 上发布了值,如何调用 someDataonChanged() 方法并且观察到暴露的变化 LiveData?

两个变量引用同一个对象。唯一的区别是您公开了一个 LiveData ,因此客户无法修改它的值。由于它只是一个对象,当您更新 _someData 时,someData 也会更新。