Sobes.tech
Middle

Android dasturlashda StateFlow nima uchun ishlatiladi?

sobes.tech AI

AIdan javob

StateFlow har doim qiymati bo'lgan ma'lumot oqimini tasvirlash uchun ishlatiladi. Bu "sovuq" oqim bo'lib, obuna bo'lganda oxirgi qiymatni yuboradi.

Asosiy qo'llanmalari:

  • UI holatini tasvirlash: StateFlow ViewModel holatini saqlash va uni Activity yoki Fragmentga uzatish uchun ideal.
  • Ma'lumotlarni bo'lishish: Bir nechta obunachilar bir xil StateFlow'ni tinglashi va joriy qiymatni olishi mumkin.
  • LiveData o'rnini bosadi: Kotlin loyihalarida, StateFlow ko'pincha LiveData o'rnini bosadi, chunki u korutinlar va Kotlin Flow bilan yaxshiroq integratsiyaga ega.
// ViewModelda StateFlow misoli
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 // O'zgarmas StateFlow sifatida ochiladi

    data class MyUiState(
        val isLoading: Boolean,
        val data: List<String>?
    )

    fun loadData() {
        // Ma'lumotlarni yuklashni simulyatsiya qilish
        _uiState.value = MyUiState(isLoading = false, data = listOf("Item 1", "Item 2"))
    }
}