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

IR4*_*R42 12 android android-lifecycle kotlin kotlin-coroutines

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

更新。StateFlow、SharedFlow 和相应的操作符在 kotlinx.coroutines 1.4.0 中提升为稳定的 API

hra*_*ach 11

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

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

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