MutableStateFlow es una clase en la biblioteca de Kotlin coroutines que proporciona una implementación mutable de StateFlow. StateFlow es un flujo de datos reactivo que emite un valor y se actualiza automáticamente cada vez que su valor interno cambia.
La clase MutableStateFlow permite modificar su valor interno a medida que progresa la ejecución del programa. Puedes actualizar el valor utilizando la propiedad value
de MutableStateFlow. Cada vez que se actualiza el valor, se notifica automáticamente a todos los colectores que están suscritos al flujo.
Ejemplo del uso de MutableStateFlow:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking fun main() = runBlocking { // Creamos un MutableStateFlow de tipo String con un valor inicial val stateFlow = MutableStateFlow("Hola") // Obtenemos un StateFlow inmutable desde el MutableStateFlow val immutableFlow = stateFlow.asStateFlow() // Creamos un coroutine para recolectar los valores del StateFlow val job = launch { immutableFlow.collect { value -> println("Valor actual: $value") } } // Actualizamos el valor del MutableStateFlow stateFlow.value = "Hola, mundo!" // Esperamos un poco para ver la salida en la recolección kotlinx.coroutines.delay(1000) // Cancelamos el coroutine job.cancel() } |
