Middle
İsti və soyuq axınlar arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
İsitici (Hot) axınlar:
- Gözətçilərin mövcudluğundan asılı olmayaraq aktivdirlər.
- Abunəlikdən dərhal sonra ən son mövcud olan məlumatları təqdim edir.
- Nümunələr:
LiveData,StateFlow,SharedFlow.
Soyuq (Cold) axınlar:
- Yalnız ən azı bir müşahidəçi olduqda aktivdirlər.
- Hər yeni abunə üçün logikanı icra edirlər.
- Nümunələr:
Flow,Sequence.
StateFlow xüsusi SharedFlow-dur və son dəyəri yadda saxlayır.
SharedFlow-u replay=1 tamponu ilə StateFlow kimi konfiqurasiya etmək mümkündür.
Əsas fərqlər:
| Əməliyyat | İsitici axın | Soyuq axın |
|---|---|---|
| Aktivlik | Həmişə | Abunəliklə |
| Logikanın icrası | Bir dəfə | Hər abunə üçün |
| Vəziyyətin yadda saxlanması | Bəli (LiveData, StateFlow, SharedFlow ilə replay) | Xeyr (standart) |
| Çox istifadəçi | Bəli | Xeyr (hər abunəçi ayrıca nüsxə alır) |
İsitici axınlar UI vəziyyətini və ya ümumi məlumatları təqdim etmək üçün istifadə olunur. Soyuq axınlar isə abunəlik zamanı şəbəkə sorğuları və ya verilənlər bazası sorğuları kimi əməliyyatları həyata keçirmək üçün istifadə olunur.
Soyuq axın nümunəsi:
// Bu axın yalnız abunəçi olduqda məlumat yükləyəcək
fun loadData(): Flow<Data> = flow {
// Burada məlumatların yüklənməsi baş verir
emit(NetworkApi.getData())
}
İsitici axın nümunəsi (StateFlow):
// Bu axın həmişə dəyərə malikdir və abunəlik üçün mövcuddur
val uiState: StateFlow<UiState> = MutableStateFlow(LoadingUiState)
fun updateState(newState: UiState) {
uiState.value = newState
}