Использование LiveData в привязке данных вместо MutableLiveData

Привет, я использую LiveData вместо MutableLiveData, потому что я получаю LiveData из комнаты, и он работает даже после удаления binding.setLifecycleOwner(this);. Мой вопрос, есть ли какие-либо проблемы с этим? Надеюсь, это поможет другим


comment
Вопрос не ясен, что вы хотите?   -  person Kishore Jethava    schedule 11.02.2019


Ответы (1)


Если вы не собираетесь устанавливать LifecycleOwner, то можете и не использовать LiveData.

Одним из самых больших преимуществ использования LiveData, особенно с Room и DataBinding, является возможность отслеживать жизненный цикл и отслеживать значения. Это означает, что он сможет автоматически обновлять ваши представления последними обновленными данными.

Согласно официальной документации: setLifecycleOwner() используется для LiveData, чтобы иметь возможность наблюдать за изменениями, например, с Room. Если LifecycleOwner не установлено, то LiveData не будет наблюдаться, и никакие обновления не будут отправляться в ваш пользовательский интерфейс через привязку данных.

Для быстрого теста я закомментировал binding.setLifecycleOwner(this) в одном из своих действий. Результаты подтвердили, что документы соответствуют действительности. Мой пользовательский интерфейс больше не получал изменений от моих LiveData объектов.

person Jackey    schedule 11.02.2019