LiveData

LiveData is an observable data holder class that is lifecycle-aware. Используется для обновления данных в UI автоматически.

Характерные черты LiveData

LiveData is observablle LiveData сохраняет информацию. Является враппером для любого типа данных LiveData is lifecycle-aware. То есть, когда добавляем observer, observer ассоциируется с LifecycleOwner. LiveData будет обновляться, если lifecycle будет переходить в состояния STARTED или RESUMED.

Важно: LiveData будет возвращать значение только если зарегистрирован хотя бы один observer

Пример

class Test {
    val word = MutableLiveData<String>()
    
    init {
        word.value = ""
    }
    
    private fun nextWord() {
        word.value = "test_word"
    }
}

...
var test = Test()
test.word.observe(viewLifecycleOwner, Observer {newWord -> 
    binding.wordText.text = newWord
})
...

LiveData и MutableLiveData

Разница: LiveData - readonly

Пример:

LiveData transformations

При передаче из обного объекта в другой появляется необходимость в приминении преобразований. Для этого можно использовать Transformations

Пример

Last updated

Was this helpful?