多次设置实时数据值仅在上次向观察者触发时

问题描述 投票:0回答:1

假设我有这样的实时数据

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

然后我多次这样设置其值

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

事情是当我执行setValueMultipleTimes()时。只有最后一个值(“ 4”)被触发到aLiveData的Observer

还有什么方法可以使我发射“ 1”,“ 2”,“ 3”?

android android-livedata android-architecture-components
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.