livedata 和 mutableLiveData 有什么区别?

What is the difference between livedata and mutableLiveData?

livedata 和 mutableLiveData 有什么区别?什么时候都可以观察到新值?

LiveDataMutableLiveData 之间唯一的主要区别是您可以更改 MutableLiveData[=27 的值=] 但 LiveData 不允许您更改它的值。 LiveData只让你观察和利用它的价值

两者一般是一起使用的,MutableLiveData用来记录变化的值,LiveData用来通知UI变化的值。 例如

class SampleViewModel(): ViewModel() {
    private val _sampleString = MutableLiveData<String>()
    val sampleString: LiveData<String> get() = _sampleString

    fun setSampleString(temp: String) {
        _sampleString.value  = temp
    }
}

class MainActivity: AppCompatActivtiy {
   private val viewModel: SampleViewModel by viewModels()

   //in onCreate
    viewModel.sampleString.observe(this) {
        //here you will have the value sampleString, that you can use as you want.
    }   
    
    //that is how you can update the value of MutableLiveData 
    viewModel.setSampleString("random string")

}

此处,一旦您将值分配给 MutableLiveData _sampleString,LiveData sampleString 将收到通知并通知更改在里面做的。 一旦 MutableLiveData 中更新了新值,LiveData 就会观察到新值。

希望这已经消除了您的疑虑。