Junior — Middle
Кадом компонентҳои Jetpack ViewModel-ро барои идоракунии маълумот ва ҳолати UI истифода мебаред?
sobes.tech AI
Ҷавоб аз AI
Барои идора кардани маълумот ва ҳолати UI дар Jetpack ViewModel одатан компонентҳои зерин истифода мешаванд:
-
LiveData — маълумоти назоратшаванда, ки автоматӣ навсозӣ мекунад UI-ро дар тағирот. Имкон медиҳад, ки муносибати реактивӣ амалӣ шавад.
-
MutableLiveData — нусхаи тағйирпазири LiveData, ки дар дохили ViewModel барои навсозии маълумот истифода мешавад.
-
StateFlow / SharedFlow (аз Kotlin Coroutines) — алтернативҳои муосир ба LiveData барои идоракунии ҳолат ва рӯйдодҳо бо дастгирии корутин.
-
SavedStateHandle — имкон медиҳад, ки ҳолати ViewModel-ро нигоҳ дошта ва барқарор кард ҳангоми навсозии UI, масалан, ҳангоми гардиши экран.
Масали истифодаи LiveData дар ViewModel:
class MyViewModel : ViewModel() {
private val _text = MutableLiveData<String>()
val text: LiveData<String> = _text
fun updateText(newText: String) {
_text.value = newText
}
}