Что такое LiveData

«Что такое LiveData» — вопрос из категории Android компоненты, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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.
  • Реактивного обновления интерфейса.
  • Синхронизации данных в разных компонентах приложения.