多次设置实时数据值只触发最后一次观察者
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,这更适合这项工作。
假设我有这样的实时数据
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,这更适合这项工作。