Kotlin StateFlow详解
掌握StateFlow和SharedFlow,在响应式应用中管理状态和数据流。 · 难度:入门 · +15XP
StateFlow概述
StateFlow是Kotlin协程中的状态持有者,类似于LiveData但完全基于协程,具有不可变性和并发安全性。
基本用法
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.*
fun main() = runBlocking {
val state = MutableStateFlow(0)
launch {
state.collect { value ->
println("State: $value")
}
}
delay(100)
state.value = 1
state.value = 2
}
SharedFlow vs StateFlow
| 特性 | StateFlow | SharedFlow |
|---|---|---|
| 初始值 | 必需 | 可选 |
| 重放 | 最新值 | 可配置 |
| 用途 | 状态管理 | 事件流 |
练习提示
创建一个计数器StateFlow,每100ms递增一次,收集并打印。