LiveData – это класс, который хранит данные и реализует паттерн
Observable. LiveData входит в
Android Jetpack.
Преимущество LiveData перед другими реализациями шаблона Observable в том, что LiveData заточена на работу с жизненными циклами Android компонентов, таких как Activity, Fragment и Service.
Для подписки на обновления LiveData используется метод
observe(), который принимает объект типа
LifecycleOwner и функциональный интерфейс
Observer.
Интерфейс
LifecycleOwner реализуется классами Android компонентов, например
AppCompatActivity,
LifecycleService,
Fragment.
LiveData доставляет данные только наблюдателям, которые находятся в
активном состоянии. Observer входит в активное состояние, когда соответствующий ему lifecycle переходит в состояние
STARTED или
RESUMED.
LiveData автоматически отписывает наблюдателей, когда их lifecycle переходит в состояние
DESTROYED.