【发布时间】:2021-10-08 14:58:51
【问题描述】:
正如我在标题中提到的,我很好奇两者之间的一般差异。你能帮忙吗?由于网上有复杂的例子,我找不到具体的区别。
- 在性能方面有何不同?
- 在哪些场景下有优势?
- 将 StateFlow 与 Kotlin Flow 结合使用是有利的。但是在使用 LiveData 的项目中不切换到 StateFlow 的风险是什么?
- Google 是否会弃用 LiveData? :)
【问题讨论】:
-
1.微不足道。 2. StateFlow 强制存在一个初始值(但您可以将 MutableLiveData 子类化以执行相同的操作),因此如果类型不可为空,则该值永远不会为空。 3. 我不明白这个问题。如何在不使用 Flow 的项目中使用 Flow? 4. 不明白你在问什么。
-
4. Google 是否会弃用 LiveData?
-
没有公开宣布他们计划弃用它。 StateFlow 实际上不能在 Java 中使用,所以我怀疑它会在未来几年的任何时候被弃用。
-
3.将 StateFlow 与 Kotlin Flow 结合使用是有利的。但是在使用 LiveData 的项目中不切换到 StateFlow 的风险是什么?
-
关于 2,我也认为 Flows 运算符比 LiveData 的转换更容易使用。 3. 我仍然不明白你在说什么将 StateFlow 与 Flow 一起使用。 StateFlow 只是 Flow 的一个子类型。这有点像说在具有 Ints 的项目中使用 Comparable 是有利的。不切换没有风险,除非您担心 LiveData 可能会很快被弃用。
标签: android kotlin kotlin-flow stateflow