Ответ
Холодный поток (cold flow) в Kotlin Flow — это поток, который начинает испускать данные только при наличии активного подписчика. Каждая подписка запускает выполнение потока заново.
Особенности:
- Ленивая инициализация (выполняется только при вызове
collect) - Независимые подписки (каждый
collectзапускает поток с начала) - Пример:
flow { ... },asFlow()
Пример:
val coldFlow = flow {
println("Emitting 1")
emit(1)
println("Emitting 2")
emit(2)
}
// Первый collect
coldFlow.collect { println("Received $it") } // Выведет 1, 2
// Второй collect (запустится заново)
coldFlow.collect { println("Received again $it") } // Выведет 1, 2 снова