【发布时间】:2022-06-15 04:31:05
【问题描述】:
在我的 ViewModel 中,我有这个 LiveData 列表:
val liveList: LiveData<List<Int>>
在我的 Activity 中,有时我会像这样访问列表中的数据:
viewModel.liveList.value?.let { letList ->
while (letList.size < 10)
delay(100)
一些数据同时添加到liveList。 (上面的 sn-p 不在主线程中运行)。 letList 会看到对liveList 所做的这些更新吗?因此,letList 是否仍连接到 liveList?
或者letList 是liveList 中列表的副本,是在let 执行的时间点创建的?因此,如果此时liveList 恰好有少于10 个元素,那么while 循环将永远不会终止,无论有多少元素添加到liveList?
【问题讨论】:
标签: kotlin kotlin-coroutines android-livedata