fbpx

Знакомство с LiveData

Обычно, когда меняются данные, нужно обновить состояние и графического интерфейса, который отображал данные. Это значит, что необходимо подписаться на обновления данных, чтобы реагировать на обновления соответствующе. Это может быть сложной задачей, однако теперь с помощью LiveData это стало проще простого.

LiveData – это компонент, умеющий обрабатывать методы жизненного цикла и входящий в так называемую lifecycle library. Достаточно использовать класс LiveData в качестве возвращаемого значения в описании модели и Room сгенерирует весь необходимый код для обновления модели, когда данные в таблице базы данных изменятся. Если необходимо обновлять данные нужно использовать MutableLiveData вместо  LiveData. КлассMutableLiveData имеет два публичных метода, позволяющих обновлять значения объекта: setValue(T) и postValue(T)

Обновите WordDao изменив возвращаемое значение метода getAlphabetizedWords() как показано ниже:

@Query("SELECT * from word_table ORDER BY word ASC")
   fun getAlphabetizedWords(): LiveData<List<Word>>

Позже мы добавим Observer в  MainActivity для отслеживания изменений