在本教程中,你将学习Kotlin中的反应式流,并使用两种类型的流——SharedFlow和StateFlow,构建一个应用程序。 事件流已经成为Android的标准配置。多年来,RxJava一直是反应式流的标准。现在,Kotlin提供了自己的反应式流实现,称为Flow。与RxJava一样,Kotlin Flow可以创建数据流并对其做出反应。也和RxJava一样,事件流可...
在Kotlin的协程库kotlinx.coroutines中,StateFlow和SharedFlow是两种用于处理事件流的API,它们有相似之处,但在设计上的初衷和内在机制上有明显区别。 这次我们就对StateFlow和SharedFlow进行深入对比: StateFlow和SharedFlow概述 StateFlow: 一种用于持有单一最新状态值并发射给多个观察者的热流。适合用于状态管理场景,例如...
一、StateFlow 和 SharedFlow 概述 在Kotlin 协程中,Flow是冷流(Cold Stream),即只有订阅者collect之后,Flow 才会开始执行,而且每个订阅者都会从头开始收集数据。 但是,在某些场景下,我们需要一个持续运行的热流(Hot Stream),例如: -实时股票行情、K线数据(新订阅者只关心最新的市场数据) -WebSocket 消息推送(所有订...
而Kotlin Flow在可预见的时间里,我也上不太可能能在工作当中用得到,所以这个系列也就基本是属于我个人的学习笔记了。 今天的这一篇文章,我准备讲一讲StateFlow和SharedFlow的知识。内容和前面的两篇文章有一定的承接关系,所以如果你还没有看过前面两篇文章的...
SharedFlow 是另一种类型的 Kotlin Flow,专门用于事件的传递。与 StateFlow 不同,SharedFlow 不保持状态,而是用于发送一次性或离散的事件。这使得 SharedFlow 成为管理事件通信的理想选择,尤其是在需要处理多个观察者的场景中。使用场景和优势 SharedFlow 常用于以下场景:用户交互事件,如按钮点击或滚动事件。系统通知...
SharedFlow和StateFlow是Kotlin中用于实现反应式流的两个关键组件,它们在处理异步数据、状态管理和事件驱动应用中发挥着重要作用。 1. SharedFlow SharedFlow是一个冷流(Cold Flow),意味着只有在订阅者订阅时才开始发射数据。它允许多个订阅者共享相同的数据流,每个订阅者都会接收到从流开始到结束的所有数据。SharedFlow...
简介: Kotlin 学习笔记(六)—— Flow 数据流学习实践指北(二)StateFlow 与 SharedFlow(上) 要说最近圈内大事件,那就非 chatGPT 莫属了!人工智能领域最新的大突破了吧?很可能引发下一场的技术革命,因为大家都懂的原因现在还不能在中国大陆使用,不过国内的度厂正在积极跟进了,预计3月份能面世,且期待一下吧~ ...
在Kotlin的协程库kotlinx.coroutines中,StateFlow和SharedFlow是两种用于处理事件流的API,它们有相似之处,但在设计上的初衷和内在机制上有明显区别。 这次我们就对StateFlow和SharedFlow进行深入对比: StateFlow和SharedFlow概述 StateFlow: 一种用于持有单一最新状态值并发射给多个观察者的热流。适合用于状态管理场景,例如...
Kotlin 学习笔记(六)—— Flow 数据流学习实践指北(二)StateFlow 与 SharedFlow,上节主要讲述了Flow的组成、Flow常用操作符以及冷流的具体使用。这节自然就要介绍热流了。先来温习下:上次说的例子不太直观,所以这次换了个更直观的对比例子,先来看第一个:只有当点击
Kotlin Flow 冷流 StateFlow 热流 StateFlow 的应用 Flow是冷流。简单来说。如果Flow有了订阅者Collector以后,发射出来的值才会存在内存中, 这和懒加载的概念很像 与之相对的是热流,StateFlow和SharedFlow 是热流,在垃圾回收之前,都是存在内存之中, 并且处于活跃状态...