1.Flow流程中为什么是【冷】的先看一段Flow的使用代码:fun main() = runBlocking {
flow {
emit(0)
emit(1)
emit(2)
emit(3)
}.collect{
println("it:$it")
}
println("end")
转载
2024-10-06 14:02:01
97阅读
前一章节我们讲解了Kotlin Flow的基本用法,这一节我们来实践将Kotlin Flow应用在Android应用中。我们从三个方面进行讲解:网络数据的请求在编写UI界面中的使用结合Room在数据库中的使用MVVM架构中留给Flow的位置我们再来看一下Google给我们规范的MVVM架构图:MVVM架构中数据回流的方式主要是利用LiveData来实现:鉴于LiveData的功能很单一,我们可以将
转载
2024-07-08 22:32:00
266阅读
本文主要介绍了flow相关的部分概念,包括什么是flow、如何创建flow、flow的简单使用介绍,以及背压等概念。
原创
精选
2023-02-06 15:24:15
584阅读
本文在前一篇文章的基础上,进一步分析了kotlin中flow的冷流、以及热流SharedFlow和StateFlow基本使用和介绍。
原创
精选
2023-02-07 12:04:02
815阅读
flow 说明流简单使用suspend fun flow1() {
flow<Int> {
(0..4).forEach {
emit(it)//生产者发送数据
}
}.collect {
println(it)//消费者处理数据
}
}本例中 flow { … } 构建块中的代码可以挂起流
转载
2023-12-15 11:12:42
183阅读
1、基本概念冷流Flow是一种异步数据流,它按顺序发出值并正常或异常完成。与Rxjava区别:Flow 就是 Kotlin 协程与响应式编程模型结合的产物,与Rxjava非常像,Flow 提供了很多丰富的操作符,例如 map、fliter、count 等等,相比 Rxjava ,Flow 的使用和线程切换更为简单与Sequences区别:每一个Flow其内部是按照顺序执行的,这一点跟Sequenc
转载
2023-10-26 12:16:55
457阅读
本文在上一篇文章的基础上,进一步分析了热流sharedFlow的特点,介绍了emit()和collect()方法的特点和实现,在此基础上,基于sharedFlow实现了一个基本的eventBus。
原创
精选
2023-02-07 15:59:13
1964阅读
一 Flow使用注意事项多个Flow不能放到一个lifecycleScope.launch里去collect{},因为进入collect{}相当于一个死循环,下一行代码永远不会执行;如果就想写到一个lifecycleScope.launch{}里去,可以在内部再开启launch{}子协程去执行。示例,下面是错误写法://NOTE: 下面的示例是错误写法
lifecycleScope.launc
转载
2023-12-27 10:15:25
117阅读
# 使用 Kotlin Flow 进行 Android 网络请求
在 Android 开发中,网络请求是常见的需求。传统的网络请求方式往往依赖 `AsyncTask` 或者 `Thread` 来处理异步操作,而现代开发中则逐渐向使用 Kotlin 的协程和 Flow 转变,这种方式更为简洁和高效。本文将介绍如何使用 Kotlin Flow 进行网络请求,并提供代码示例,帮助开发者更好地理解这一技
原创
2024-09-06 04:12:56
315阅读
# Android Kotlin Flow网络封装
在Android开发中,网络请求是一个必不可少的功能。近年来,Kotlin语言和Flow库的流行,为我们提供了更加简洁、高效的方式来处理网络请求。本文将介绍如何使用Kotlin和Flow库来进行Android网络封装,并且提供相应的代码示例。
## 1. 什么是Flow库
Flow是Kotlin协程库的一部分,它提供了一种符合响应式编程的方
原创
2023-11-28 09:54:17
474阅读
前言本文旨在通过实际业务场景阐述如何使用Kotlin Flow解决Android开发中的痛点问题,进而研究如何优雅地使用Flow以及纠正部分典型的使用误区。有关Flow的介绍及其操作符用法可以参考:异步流 - Kotlin 语言中文站,本文不做赘述。基于LiveData+ViewModel的MVVM架构在某些场景下(以横竖屏为典型)存在局限性,本文会顺势介绍适合Android开发的基于Flow/C
转载
2024-09-12 12:11:28
134阅读
# Android Kotlin Flow 中的冷热流
在 Kotlin Flow 中,流是一种特别强大的异步数据处理机制。Kotlin Flow 提供了一种声明式的方式来处理异步数据流,其中数据流可以被分为两种主要类型:热流(Hot Flow)和冷流(Cold Flow)。了解这两者的区别对于构建高效的 Android 应用至关重要。
## 1. 冷流(Cold Flow)
冷流在调用方订
点击上方蓝字关注我,知识会给你力量这个系列我做了协程和Flow开发者的一系列文章的翻译,旨在了解当前协程、Flow、LiveData这样设计的原因,从设计者的角度,发现他们的问题,以及如何...
原创
2021-12-27 15:57:43
343阅读
most from referenceif表达式在kotlin中,if是一个表达式,即它返回一个值。kotlin中没有Java中的三元运算符。// Traditional usage var max = a if (a < b) max = b// With else var max: Intif (a > b) { max = a} else { max = b}
原创
2022-12-06 06:05:20
89阅读
flow 是啥按顺序发出值并正常完成或异常完成的冷流异步数据流flow咋用? flow { emit(1) //发射数字 1 emit(2) //发射数字 2 }.collect {
原创
2021-09-08 17:52:15
2613阅读
Flow 是 Kotlin 协程库中的异步数据流处理工具,类似于 RxJava 的 Observable,但更简洁、与协程深度集成。// 自定义过滤操作符println("过滤通过: $value")} else {println("过滤拒绝: $value")// 自定义转换操作符emit(sum).collect { println("运行和: $it") }
kotlin中flow可与协程配合使用,从而可以更加轻量级地处理io任务。flow在kotlin分为冷流和热流,所谓冷流即没有订阅者就不会触发,只有collect操作后,就触发flow。热流是即便不存在订阅者,也可以emit操作。本文主要讲述冷流和热流的基本使用。
简介Google官方描述: Flow是基于协程构建的数据流,数据流是可通过异步方式进行计算处理的一组数据序列。所发出值的类型必须相同。例如Flow 是发出整数值的数据流。 数据流与生成一组序列值的 Iterator 非常相似,但它使用挂起函数通过异步方式生成和使用值。这就是说,例如,数据流可安全地发出网络请求以生成下一个值,而不会阻塞主线程。数据流包含三个实体:提供方会生成添加到数据流中的数据。得
转载
2024-05-14 21:10:11
81阅读
简介Kotlin的Flow是Kotlin在异步编程方面的一个重要组件,它提供了一种声明式的、可组合的、基于协程
原创
2023-11-27 11:36:52
184阅读