通常在ViewModel中使用MutableLiveData,然后ViewModel仅向观察者公开不可变的LiveData对象。 https://developer.android.com/topic/libraries/architecture/livedata#update_livedata_objects
将LiveData对象公开为ViewModel对象的参数是否更好:
val data: LiveData<String>
get() = _data
或者更确切地说,通过调用成员函数返回它:
fun getData(): LiveData<String> {
return _data
}
所以在第一种情况下我可以写
println(viewModel.data)
而在后者
println(viewModel.getData())
在内部,两者基本相同。但正如@tyczj所说,第一种形式更具惯用性。所以,我更喜欢第一个。