kotlin-coroutines-flows
Kotlin协程与Flow在Android和KMP中的模式——结构化并发、Flow操作符、StateFlow、错误处理和测试。
适用对象:移动应用开发。自动收录 · 待核查。
原作者说明节选
从固定版本的 SKILL.md 提取,保留原文语言。以下内容属于作者说明,本站尚未验证安装、兼容或运行结果。
查看中文原文
原文涵盖的主题
- Kotlin 协程与 Flow
- 何时启用
- 结构化并发
- 作用域层级
- 并行分解
- SupervisorScope
- Flow 模式
- Cold Flow —— 一次性操作到流的转换
适用于 Android 和 Kotlin 多平台项目的结构化并发模式、基于 Flow 的响应式流以及协程测试。 使用 Kotlin 协程编写异步代码 使用 Flow、StateFlow 或 SharedFlow 实现响应式数据 处理并发操作(并行加载、防抖、重试) 测试协程和 Flow 管理协程作用域与取消 始终使用结构化并发——绝不使用 GlobalScope: 使用 coroutineScope + async 处理并行工作: 当子协程失败不应取消同级协程时,使用 supervisorScope: WhileSubscribed(5000) 会在最后一个订阅者离开后,保持上游活动 5 秒——可在配置更改时存活而无需重启。 在 KMP 中,使用 Dispatchers.Default 和 Dispatchers.Main(在所有平台上可用)。Dispatchers.IO 仅适用于 JVM/Android——在其他平台上使用 Dispatchers.Default 或通过依赖注入提供。 长时间运行的循环必须检查取消状态: 使用 GlobalScope——会导致协程泄漏,且无法结构化取消 在没有作用域的情况下于 init {} 中收集 Flow——应使用 viewModelScope.launch 将 MutableStateFlow 与可变集合一起使用——始终使用不可变副本:state.update { it.copy(list = it.list + newItem) } 捕获 CancellationException——应让其传播以实现正确的取消 使用 flowOn(Dispatchers.Main) 进行收集——收集调度器是调用方的调度器 在 @Composable 中创建 Flow 而不使用 remember——每次重组都会重新创建 Flow 关于 Flow 在 UI 层的消费,请参阅技能:compose-multiplatform-patterns。 关于协程在各层中的适用位置,请参阅技能:android-clean-architecture。
- 来源仓库
- affaan-m/ECC
- 源文件
- docs/zh-CN/skills/kotlin-coroutines-flows/SKILL.md
- 固定版本
- d2ef2680594f9a17526a6e1a2e18b3d242c5d17b
准备条件
- 本条仅收录原作者的技能元数据;请阅读完整说明,确认依赖、许可与使用条件。
第一件可以尝试的小事
先阅读原作者说明,再决定是否在自己的 AI 工具中使用。
对应 AI 工具说明
作者有说明不等于本站实机验证。没有证据时,不自动标为兼容、安全或免费。
来源与内容状态
本条为自动发现的元数据,尚未完成人工文档核查;适用性与运行结果待核查。
原作者:affaan-m/ECC · 原作者仓库元数据。文档核查:未核查。最近来源检查:2026-11-09T15:01:42.397Z。
分类由名称、说明与路径规则生成,分类不代表已核实适配。
许可与权利归属
MIT。第三方内容及版权归原作者,使用条件以原文为准。
许可原文 ↗本站没有因同步、复制或用户自报成功而将资源标为运行验证通过。
限制与注意事项
- 元数据收录不代表本站已经安装、适配、实测或进行安全审查。