首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

(StateFlow & ShareFlow) VSFlow & LiveData

theme: condensed-night-purple highlight: vs 在之前的Flow,collect函数浅析和仿Flow构建器创建数据流文章中我们探索了flow的简单使用及它的简单原理...类似于观察数据,数据更新,使用方接受最新数据是不是和LiveData很像。...确实像,但他比LiveData更强大~~ StateFlow 线程切换:相比于LiveData更新数据的操作只能在主线程进行,但是Flow可以通过flowOn来在不同的Dispatchers(线程分发器...,CoruntineContext的一种)上运行切换线程的操作更加方便 数据回溯:相比于LiveData自动管理version来决定是否通知Ovserve并且只能收到最新值的方式,Flow可通过构造函数配置...reply字段决定获取之前的几次数据更新 生命周期处理: 对于LiveData来说,通过观察调用observe函数的时候传入LifecycleOwner内部注册生命周期回调的方式相比;Flow的观察collect

97740

(StateFlow & ShareFlow) VSFlow & LiveData)来看业务适合哪个?

这两个Flow和普通的Flow不一样,Flow我们知道,只有当调用collect的时候flow传入的函数才会执行,并且每次调用collect都会重新走一遍flow函数(本质是扩展函数),调用collect...类似于观察数据,数据更新,使用方接受最新数据是不是和LiveData很像。...确实像,但他比LiveData更强大~~StateFlow线程切换:相比于LiveData更新数据的操作只能在主线程进行,但是Flow可以通过flowOn来在不同的Dispatchers(线程分发器,CoruntineContext...的一种)上运行切换线程的操作更加方便数据回溯:相比于LiveData自动管理version来决定是否通知Ovserve并且只能收到最新值的方式,Flow可通过构造函数配置reply字段决定获取之前的几次数据更新生命周期处理...: 对于LiveData来说,通过观察调用observe函数的时候传入LifecycleOwner内部注册生命周期回调的方式相比;Flow的观察collect函数需要在协程中调用也就是需要自动管理协程的生命周期

60440
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin开发学习(1)

, 28 5月 2022 作者 847954981@qq.com 后端学习, 我的编程之路 Kotlin开发学习(1) Kotlin变量与函数 变量: Kotlin中的变量定义和Java中差别很大...Kotlin有着优秀的类型推导机制,可以完成类型的自动推导,所以只需要这两种关键字便可。...且由于Kotlin的推导机制,这里可以简化掉返回Int类型的声明: fun largerNumber(num1: Int, num2: Int) = max(num1, num2) if条件语句 Kotlin...循环语句 与Java相同,Kotlin也提供了while和for两种循环方法,while与Java没有任何区别,但Kotlin在for循环上做了很大程度的修改。...Java中最常用的for-i循环在Kotlin中直接被舍弃了,而Java中另一种for-each循环则被Kotlin进行了大幅度的加强,变成了for-in循环。

76230

Kotlin开发学习(3)

, 29 7月 2022 作者 847954981@qq.com 后端学习, 我的编程之路 Kotlin开发学习(3) 数据类与单例类 在Java中,数据类占据着重要的角色,其通常需要重写包括...Kotlin会根据主构造函数中的参数自动生成包括equals(),hashCode(),toString()等固定无实际意义的方法自动生成。并当类没有任何代码时,尾部大括号可以省略。...单例类是Kotlin特有的功能,其实现的是最常用、最基础的设计模式之一的单例模式,它可以避免创建重复的对象。比如我们希望某个类在全局最多只能拥有一个实例,这时就可以使用单例模式。..., "Grape") 这里我们 listof() 这个Kotlin方法来快速实现集合的创建。...有着严格的空指针检查,它在编译时就会检查代码是否安全(会不会出现null),这当然会导致代码变得比较男鞋,但是Kotlin也提供了一系列辅助工具。

50410

Kotlin开发学习(4)

, 29 8月 2022 作者 847954981@qq.com 后端学习, 我的编程之路 Kotlin开发学习(4) 前面我们学习了Kotlin 的基本语法,但我们最终的目的是作为开发。...因此,我们需要学习的页面开发知识。 Activity Activity是开发的最重要组成之一,它是一种可以包含用户界面的组件,主要用于和用户进行交互。...findViewById()方法返回的是一个继承自View的泛型对象,因此Kotlin无法自动推导出它是一个Button还是其他控件,所以我们需要将button1变量显式地声明成Button类型。...使用Kotlin编写的Android项目在app/build.gradle文件的头部默认引入了一个kotlin-android-extensions插件,这个插件会根据布局文件中定义的控件id自动生成一个具有相同名称的变量

53730

Kotlin开发学习(2)

, 30 5月 2022 作者 847954981@qq.com 后端学习, 我的编程之路 Kotlin开发学习(2) 和很多现代高级语言一样,Kotlin也是面向对象的。...使用Kotlin时,我们是直接对属性进行赋值和读取,因为Kotlin会自动将赋值、读取语句转换成get/set方法,方便开发者使用。...这就是Kotlin不同的地方,在Kotlin中任何一个非抽象类默认都是不可以被继承的,相当于Java中给类声明了final关键字。...= 0 } 与Java中不同,Kotlin中继承需要在继承类后面加上一对括号,为什么需要加上括号,这就涉及了Kotlin主构造函数和次构造函数的概念。...Kotlin中,我们使用override关键词来重写或者实现接口中的函数。 除此之外Kotlin还增加了一个额外的功能:允许对接口中定义的函数进行默认实现。

36720

LiveData 还有学习的必要吗?—— Jetpack 系列(2)

2、Kotlin FlowKotlin Flow 是基于 Kotlin 协程基础能力搭建的一套数据流框架,从功能复杂性上看是介于 LiveData 和 RxJava 之间的解决方案。...关于 Kotlin Flow 的更多内容,我们在 4、FlowLiveData 的替代方案[10] 这篇文章讨论过。 ---- 2....return liveData; } } } 3.5 Kotlin Flow Google 对 Flow 的定位是 Kotlin 环境下对 LiveData 的替代品,使用 SharedFlow...---- 参考资料 LiveData 概览[12] —— 官方文档 重学:吃透 LiveData 本质,享用可靠消息鉴权机制[13] —— KunMinX 著 重学LiveData 数据倒灌...[13] 重学:吃透 LiveData 本质,享用可靠消息鉴权机制: https://xiaozhuanlan.com/topic/6017825943 [14] 重学LiveData 数据倒灌

3.5K10

Kotlin开发学习-标准函数和静态方法

, 5 11月 2022 作者 847954981@qq.com 后端学习, 我的编程之路 Kotlin开发学习-标准函数和静态方法 Kotlin的标准函数指的是Standard.kt文件中定义的函数...,任何Kotlin代码都可以自由地调用所有的标准函数。...但Kotlin弱化了静态方法这个概念,因为kotlin提供了比静态方法更好的语法特性–单例类。...除了添加注解来实现静态方法,Kotlin也能使用顶层方法来实现效果。 顶层方法指的是那些没有定义在任何类中的方法。比如我们创建一个新的Kotlin文件,并在内部直接写入方法,那么这个方法就是顶层方法。...Kotlin编译器会将所有的顶层方法全部编译成静态方法,而调用只需要类名+顶层方法名即可。

48120

【译】LiveData三连

这个系列我做了协程和Flow开发者的一系列文章的翻译,旨在了解当前协程、FlowLiveData这样设计的原因,从设计者的角度,发现他们的问题,以及如何解决这些问题,pls enjoy it。...When and why to use Android LiveData 差不多一年前(2017年5月的第一个alpha版本),谷歌发布了 "架构组件",这是一个库的集合,旨在帮助开发人员设计更强大...这篇文章的灵感来自于18年开发峰会上的一个演讲,我觉得这个演讲很新颖,很有趣。 1. You have backpressure in your app....你可以使用RX Flowable或KotlinFlow来正确处理这个问题。下面的图片展示了背压的正确处理。在你使用LiveData的情况下,9,10,11的值将被丢弃,以提供最新的值。...因此,处理这种需求的最好方法是不使用LiveData作为生产者,而是使用RX类型或Kotlin,因为Kotlin支持多种高阶函数以及对Collections和Sequence的扩展。

1.7K20

LiveData:还没普及就让我去世?我去你的 Kotlin 协程

我要说的是 KotlinKotlin 在 2017 得到了 Android 官方的公开支持,在接下来这几年里,Kotlin 自身越来越完善,它的协程也越来越完善。...协程的 Flow 和 RxJava 的功能范围非常相似——其实我觉得就是一样的——但是 Flow 是协程里必不可少的一部分,而协程是 Kotlin 里必不可少的一部分,而 Kotlin 是 Android...开发里必不可少的一部分——哦这个说的不对,重新说——而 Kotlin 又是 Android 现在主推的开发语言以及未来的趋势,这样的话,Flow 一出来,那就没 LiveData 什么事了。...FlowLiveData 的使用比较简单,而且功能上对于简单场景也是足够的,而 RxJava 和 Flow 这种东西学起来就没 LiveData 那么直观。...Kotlin 一样;在项目里用两样东西来做同一件事(事件订阅)不如只用一样,因此你可以考虑摘除 LiveData,是这么个逻辑。

90150
领券