Junior — Middle
Кои компоненти на Jetpack ViewModel използвате за управление на данните и състоянието на UI?
sobes.tech AI
Отговор от AI
За управление на данните и състоянието на потребителския интерфейс в 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
}
}