我们知道 StateFlow 和 SharedFlow 很热门。
StateFlow 是一个热流——只要该流被收集或当垃圾收集根中存在对它的任何其他引用时,它就会保留在内存中。
SharedFlow 是一个热流,它向从它收集的所有消费者发出值。
流动本身是冷的。
流是类似于序列的冷流......
我有一个找不到直接答案的问题。LiveData 是热的还是冷的?
我们知道 StateFlow 和 SharedFlow 很热门。
StateFlow 是一个热流——只要该流被收集或当垃圾收集根中存在对它的任何其他引用时,它就会保留在内存中。
SharedFlow 是一个热流,它向从它收集的所有消费者发出值。
流动本身是冷的。
流是类似于序列的冷流......
我有一个找不到直接答案的问题。LiveData 是热的还是冷的?
LiveData 不能与 Flow 直接比较。它与 StateFlow 最直接可比。
调用setData
LiveData 对象的代码总是会改变 LiveData 的状态,而不管它上面的任何观察者。在这方面,它很热——观察者的存在根本不重要。状态总是在变化,并且该状态被广播给任何观察者。
此外,LiveData 上的观察者总是会从中获取当前状态值——他们不会等待(或暂停)任何值变得可用。LiveData 必须始终具有值。在将任何其他数据放入其中之前,观察者将获得该值。
在这些方面,基于类似于 StateFlow 的使用模式,LiveData 很可能被认为是“热的”。