多次设置实时数据值只触发最后一次观察者

Seting Live Data value multiple time only fire the last time to Observer

假设我有这样的实时数据

val aLiveData by lazy { MutableLiveData<String>() }

然后我像这样多次设置它的值

fun setValueMultipleTimes(){
  aLiveData.value = "1"
  aLiveData.value = "2"
  aLiveData.value = "3"
  aLiveData.value = "4"
}

问题是当我执行 setValueMultipleTimes() 时。只有最后一个值(“4”)被触发给 aLiveData 的观察者

有什么方法可以让“1”、“2”、“3”也被解雇吗?

LiveData 旨在向观察者发送单一状态(可能会随时间变化)。它不适用于数据流。如果您有多项数据要同时发送给客户端,请考虑将其设为 LiveData<Array<String>> 而不是 LiveData<String>:

aLiveData.value = arrayOf("1", "2", "3", "4")

如果您确实想要发送数据流而不是状态,请考虑使用 Kotlin Flow,这更适合这项工作。