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