Middle
K čemu slouží StateFlow v vývoji Androidu?
sobes.tech AI
Odpověď od AI
StateFlow se používá k reprezentaci toku dat, který má vždy hodnotu. Je to "studený" tok a odesílá poslední hodnotu při přihlášení.
Hlavní použití:
- Zobrazení stavu UI: StateFlow je ideální pro ukládání stavu ViewModel a jeho předávání do Activity nebo Fragment.
- Sdílení dat: Několik odběratelů může poslouchat stejný StateFlow a získat aktuální hodnotu.
- Náhrada
LiveData: V Kotlin projektech se StateFlow často používá místoLiveDatadíky lepší integraci s korutinami a Kotlin Flow.
// Příklad použití StateFlow ve ViewModelu
import androidx.lifecycle.ViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
class MyViewModel : ViewModel() {
private val _uiState = MutableStateFlow(MyUiState(isLoading = true, data = null))
val uiState: StateFlow<MyUiState> = _uiState // Expozice jako neměnitelného StateFlow
data class MyUiState(
val isLoading: Boolean,
val data: List<String>?
)
fun loadData() {
// Simulace načítání dat
_uiState.value = MyUiState(isLoading = false, data = listOf("Item 1", "Item 2"))
}
}