假设我有这样的实时数据
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”被解雇吗?
答案 0 :(得分:2)
LiveData旨在向观察者发送单个状态(可能会随时间变化)。它不适用于数据流。如果您要同时发送多个数据项,请考虑将其设为LiveData<Array<String>>
而不是LiveData<String>
:
aLiveData.value = arrayOf("1", "2", "3", "4")
如果您确实想发送数据流而不是发送状态,请考虑改用Kotlin Flow,它更适合该工作。