首页
学习
活动
专区
圈层
工具
发布
综合排序最热优先最新优先
时间不限
kotlin--StateFlow运用
StateFlow当值发生变化,就会将值发送出去,下流就可以接收到新值。 在某些场景下,StateFlow比LiveData更适用 效果: 1.定义ViewModel StateFlow需要初始值 package com.aruba.flowapplyapplication.viewmodel /** * Created by aruba on 2021/9/21. */ class StateFlowViewModel : ViewModel() { val stateFlow = MutableStateFlow<Int>(0) fun add(v: View) { stateFlow.value++ } fun reduce(v : View) { stateFlow.value-- } } 2.Fragment的布局文件 DataBinding也支持在xml中直接使用StateFlow <?
aruba
2021-12-06
8980
标签:
造和运行Stateflow
tateflow快速入门——构造和运行StateflowStateflow非常适合为有限状态机系统进行建模,有限状态机系统我们后续再学习。 Sateflow基本组成要素为状态、转移及数据(数据、事件or消息),以上要素全部齐全且正确被联系在一起,stateflow才能够正确运行。 创建Chart Chaart为stateflow编程的“画布”。打开Library,在Simulink中插入chart,即可进行开始建立模型了。 image.png 点击红色警告,stateflow会告诉你这个变量你加入了,但是没有定义,这时候点击右侧的fix即可解决。 image.png image.png 点击黄色警告,stateflow会告诉你这个变量没有被使用,问你要不要删除,这里根据需要进行选择即可。
用户8639654
2021-07-20
8070
标签:
StateFlow &amp; ShareFlow) VS (Flow &amp; LiveData)
在之前的Flow,collect函数浅析和仿Flow构建器创建数据流文章中我们探索了flow的简单使用及它的简单原理,但是生产过程中我们往往会借用这些基础的api实现我们复杂的逻辑处理,根据需求也推出了StateFlow 切换线程 在flow内部不允许使用不同的ConretineContext进行emit提交数据,所以想要在内部切换线程可以通过flowOn操作符进行转换 StateFlow & ShareFlow StateFlow flow函数(本质是扩展函数),调用collect的时候执行这个扩展函数;但是这两个Flow不一样他们不依赖于外部调用(可配置稍后说明),他们是热流,他们发出的数据会缓存起来当有订阅者的时候再通知订阅者 StateFlow 确实像,但他比LiveData更强大~~ StateFlow 线程切换:相比于LiveData更新数据的操作只能在主线程进行,但是Flow可以通过flowOn来在不同的Dispatchers(线程分发器 构建StateFlow &ShareFlow 官方示例: 将普通flow转换为ShareFlow(StateFlow的一种)通过shareIn操作符 需要传入以下三个参数: (这三个参数) class
小柔
2022-10-09
1.5K0
标签:
Kotlin Flow响应式编程,StateFlow和SharedFlow
今天的这一篇文章,我准备讲一讲StateFlow和SharedFlow的知识。 而如果谈到在Flow的所有概念当中,最最接近LiveData的,那毫无疑问就是StateFlow了。 可以说,StateFlow的基本用法甚至能够做到与LiveData完全一致。 这就非常关键了,我们每次都给StateFlow的value值加1 。 你会发现,这个例子中展示的StateFlow的用法几乎和LiveData是完全一致。 实际上,StateFlow也有更加响应式的用法,借助stateIn函数,可以将其他的Flow转换成StateFlow。 刚才我们也说过,StateFlow和LiveData具有高度一致性,因此可想而知,StateFlow也是粘性的。 怎么证明呢?通过一个非常简单的例子即可证明。
用户1158055
2023-10-18
1.5K0
标签:
StateFlow & ShareFlow) VS (Flow & LiveData)来看业务适合哪个?
在之前的Flow,collect函数浅析和仿Flow构建器创建数据流文章中我们探索了flow的简单使用及它的简单原理,但是生产过程中我们往往会借用这些基础的api实现我们复杂的逻辑处理,根据需求也推出了StateFlow 切换线程在flow内部不允许使用不同的ConretineContext进行emit提交数据,所以想要在内部切换线程可以通过flowOn操作符进行转换StateFlow & ShareFlowStateFlow flow函数(本质是扩展函数),调用collect的时候执行这个扩展函数;但是这两个Flow不一样他们不依赖于外部调用(可配置稍后说明),他们是热流,他们发出的数据会缓存起来当有订阅者的时候再通知订阅者StateFlow 确实像,但他比LiveData更强大~~StateFlow线程切换:相比于LiveData更新数据的操作只能在主线程进行,但是Flow可以通过flowOn来在不同的Dispatchers(线程分发器,CoruntineContext 构建StateFlow &ShareFlow官方示例:将普通flow转换为ShareFlow(StateFlow的一种)通过shareIn操作符 需要传入以下三个参数:(这三个参数)class NewsRemoteDataSource
北洋
2023-09-17
1.3K1
标签:
谁能取代Android的LiveData- StateFlow or SharedFlow?
这意味着如果你当时没有初始值,你将需要使StateFlow类型T为空,或者使用一个密封的类来表示一个空的初始值。 然而,注意选择SharedFlow的明显妥协:你将失去StateFlow.value。 Which to choose, StateFlow or SharedFlow? 如果你没有StateFlow的初始值,你必须使StateFlow类型为nullable T?,并使用null作为初始值(或者为默认的无值声明一个密封类)。 另外,你可能想调整一下重放值。 StateFlow对SharedFlow的约束可能不是最适合你的,你可能想用行为来调整并选择使用SharedFlow。 在官方文档中阅读更多关于StateFlow和SharedFlow的内容。
用户1907613
2022-01-05
2.4K0
标签:
Kotlin上的反应式流-SharedFlow和StateFlow
StateFlow 一个StateFlow的结构像一个SharedFlow。这是因为StateFlow只不过是SharedFlow的一个特殊化子类。 这正是StateFlow所做的,这使得它非常适合保持和处理状态。 Handling App State 不过还有更简单的方法来创建StateFlow,你现在就可以使用。 这就是你如何创建一个可变的StateFlow的方法。与SharedFlow不同,StateFlow需要一个初始值,或者换句话说,一个初始状态。 Event Emission With StateFlow SharedFlow和StateFlow之间值得注意的一个区别是事件生成方式。 在使用StateFlow方面做得很好!
用户1907613
2021-11-19
2.9K0
标签:
Kotlin中的StateFlow和SharedFlow有什么区别?
这次我们就对StateFlow和SharedFlow进行深入对比: StateFlow 和 SharedFlow 概述 StateFlow: 一种用于持有单一最新状态值并发射给多个观察者的热流。 类型层次结构 StateFlow继承自SharedFlow,所以它是SharedFlow的一种特化实现。 使用对比 StateFlow 使用示例 val _stateFlow = MutableStateFlow<Int>(0) // Initial state val stateFlow: StateFlow <Int> = _stateFlow // Collect values stateFlow.collect { value -> println("StateFlow value: $value 选择指南 选择StateFlow:如果你的应用场景需要在多个观察者之间共享最新的状态,并且没有兴趣保留状态的历史记录,那么StateFlow是你的最佳选择。
AntDream
2024-06-13
1.7K0
标签:
SharedFlow vs StateFlow,一篇看懂选择和使用技巧
原理分析 SharedFlow 和 StateFlow 基于协程构建,它们利用协程的轻量级特性,在异步操作中更加高效。 SharedFlow、StateFlow与LiveData的区别 StateFlow就是SharedFlow的一种特殊类型,特点有三: 它的replay容量为 1;即可缓存最近的一次粘性事件,如果想避免粘性事件问题 与LiveData的不同点 StateFlow必须在构建的时候传入初始值,LiveData不需要; StateFlow默认是防抖的,即相同值不更新,LiveData默认不防抖; StateFlow默认没有和生命周期绑定 // StateFlow 示例 val stateFlow = MutableStateFlow("Initial State") // 订阅 stateFlow.collect { value -> 假设我们需要在应用中管理全局的主题模式,我们可以使用 StateFlow
Rouse
2023-12-26
3.3K0
标签:
前端开发者的 Kotlin 之旅:StateFlow 状态管理深度解析
基于Kotlin协程,天然支持挂起函数✅StateFlow是"热流",创建时就开始活跃✅StateFlow在Compose中需要collectAsState()转换✅StateFlow的操作符需要.stateIn 快速体验StateFlow在深入学习之前,让我们先运行示例项目,直观感受StateFlow的强大功能。 一、StateFlow基础概念1.1理解Flow和StateFlow的关系在学习StateFlow之前,我们需要先理解KotlinFlow的概念。什么是Flow? 1.2什么是StateFlow? ()的作用在Composable的生命周期内订阅StateFlowStateFlow的值转换为ComposeState当StateFlow变化时,触发Composable重组直接用.value的问题可以读取当前值但
骑猪耍太极
2026-05-02
2420
标签:
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档