Ответ
LiveData — это observable-класс из Android Architecture Components, который позволяет отслеживать изменения данных с учетом жизненного цикла компонентов (Activity, Fragment и т.д.).
Особенности:
- Автоматически обновляет UI только при активном состоянии жизненного цикла (STARTED или RESUMED).
- Избегает утечек памяти, так как отписывается при уничтожении наблюдателя (DESTROYED).
- Поддерживает трансформации (map, switchMap) и слияние данных (MediatorLiveData).
Пример:
val liveData = MutableLiveData<String>()
liveData.observe(viewLifecycleOwner) { value ->
textView.text = value // Обновление UI только при активном состоянии
}
liveData.value = "New Data" // Триггер обновления
Используется для:
- Передачи данных между ViewModel и UI.
- Реактивного обновления интерфейса.
- Синхронизации данных в разных компонентах приложения.