阅读以下文章,
- 可变状态流值与更新与发射
- https://medium.com/geekculture/atomic-updates-with-mutablestateflow-dc0331724405
- https://proandroiddev.com/make-sure-to-update-your-stateflow-safely-in-kotlin-9ad023db12ba
- https://www.droidcon.com/2021/08/25/make-sure-to-update-your-stateflow-safely-in-kotlin/
我可以理解我们可以使用stateflow update((来原子地更新值
当更新后的值具有copy()
或某些长时间运行的计算时,这很有用。(API调用、房间数据获取等(
我的问题是,我们是否可以用update()
完全替换stateflow.value
的所有用法,或者是否存在.value
是更好选择的用例?
当您所需的逻辑不需要它时,我不会使用它,因为它的代码更多,性能更低。此外,如果您将长时间运行的suspend函数放在其中,那么其他想要更新它并且也在使用update
的协同程序将不得不等待。如果这与你的逻辑无关,你会让一切变得更慢。
我想不出有什么理由使用它,除非新值必须依赖于前一个值。