如果我可以将 Flow 和 StateFlow 与 lifecycleScope 一起使用,那么在 ViewModel 中使用 LiveData 有什么意义呢? viewLifecycleOwner.lifecycleScope

What's the point of using LiveData in ViewModel if I can use Flow and StateFlow with lifecycleScope \ viewLifecycleOwner.lifecycleScope

Flow 有很多运算符,LiveData 只有 3 个(转换)。是否有任何理由继续使用 LiveData 除了 StateFlow 仍处于实验阶段

更新。 StateFlow、SharedFlow 和相应的运算符在 kotlinx.coroutines 1.4.0

中提升为稳定 API

现在没有太多理由使用 LiveData。 (State)Flow/Coroutines 还通过 lifecycleScope 带来了新的可能性。launchWhenCreated/Started/Resumed,很难用 LiveData 做到。

但是当需要 LiveData 时有一个原因 - DataBinding。目前不支持观察Flow

编辑:Android Studio 4.3 中的 DataBinding 将支持 StateFlow:https://twitter.com/manuelvicnt/status/1314621067831521282