SKILL

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
阅读完整原作者说明 ↗

来源与内容状态

本条为自动发现的元数据,尚未完成人工文档核查;适用性与运行结果待核查。

原作者:affaan-m/ECC · 原作者仓库元数据。文档核查:未核查。最近来源检查:2026-11-09T15:01:42.397Z。

分类由名称、说明与路径规则生成,分类不代表已核实适配。

许可与权利归属

MIT。第三方内容及版权归原作者,使用条件以原文为准。

许可原文 ↗

本站没有因同步、复制或用户自报成功而将资源标为运行验证通过。

限制与注意事项

  • 元数据收录不代表本站已经安装、适配、实测或进行安全审查。