Azi*_*mov 2 android android-livedata kotlin-flow kotlin-stateflow kotlin-sharedflow
我们知道StateFlow和SharedFlow很热门。
\n\n\nStateFlow 是一个热流\xe2\x80\x94,只要该流被收集\n或者垃圾收集根中存在对其的任何其他引用,它就会保留在内存中。
\n
\n\nSharedFlow 是一个热流,它向所有从其收集的使用者发送值。\n
\n
水流本身是冷的。
\n\n\n流是类似于序列的冷流......
\n
我有一个问题无法找到直接答案。LiveData 是热的还是冷的?
\nDou*_*son 11
LiveData 不能直接与 Flow 相比较。它与 StateFlow 最直接可比。
调用 LiveData 对象的代码setData总是会更改 LiveData 的状态,无论其上有任何观察者。从这方面来说,它很热门——观察者的存在根本不重要。状态总是会改变,并且该状态会广播给所有观察者。
此外,LiveData 上的观察者总是会从中获取当前状态值 - 他们不会等待(或暂停)任何值变得可用。LiveData 必须始终具有值。观察者将在添加任何附加数据之前获取该值。
在这些方面,基于 LiveData 与 StateFlow 类似的使用模式,它很可能被认为是“热门”。