本篇解析 example-flow-05.kt。探讨 Flow 的一个关键特性:冷流。
1. 什么是冷流?
Flow 是一种冷流。这意味着:flow { ... } 构建器中的代码在调用 collect 之前不会运行。
代码解析
1 | fun simple(): Flow<Int> = flow { |
2. 特点
- 重复执行:每次调用
collect,Flow 都会重新开始从头运行。 - 资源节省:如果不收集,就不会产生任何计算开销。
3. 开发者感悟
冷流就像是“按需播放”的视频。你不点播放(collect),它就不会产生流量。这与 Channel(热流)不同,Channel 无论有没有人在听,都会在后台运行。在 Android 开发中,这种冷流特性非常适合处理数据库订阅或 API 轮询。