LiveData vs StateFlow:我们应该从实时数据切换到状态流吗?
我见过推荐切换到StateFlow的文章。 就像here。 同样在新的Android工作室中,StateFlow支持自动包含在数据绑定的功能中,包括协程依赖。 大多数应用程序已经在使用实时数据。 我们是否应该从LiveData迁移到StateFlow?有什么好处?
解决方案
状态流和实时数据没有太大区别。主要区别在于State flow需要初始值,因此不需要检查是否为空。第二个不同之处在于取消注册使用者;当视图进入停止状态时,Live Data会自动取消注册,而State flow不会。若要实现与Live Data类似的行为,您可以在Lifecycle.repeatOnLifecycle
块中收集流。
状态流的好处
- 状态流包含在协程库中,可以在多平台项目中使用
- 在项目中使用一个API(流),而不是两个(LiveData和流)。
- 是Kotlin,为什么不
相关文章