Привет, я использую LiveData вместо MutableLiveData, потому что я получаю LiveData из комнаты, и он работает даже после удаления binding.setLifecycleOwner(this);
. Мой вопрос, есть ли какие-либо проблемы с этим? Надеюсь, это поможет другим
Использование LiveData в привязке данных вместо MutableLiveData
Ответы (1)
Если вы не собираетесь устанавливать LifecycleOwner
, то можете и не использовать LiveData
.
Одним из самых больших преимуществ использования LiveData
, особенно с Room
и DataBinding
, является возможность отслеживать жизненный цикл и отслеживать значения. Это означает, что он сможет автоматически обновлять ваши представления последними обновленными данными.
Согласно официальной документации: setLifecycleOwner()
используется для LiveData
, чтобы иметь возможность наблюдать за изменениями, например, с Room
. Если LifecycleOwner
не установлено, то LiveData
не будет наблюдаться, и никакие обновления не будут отправляться в ваш пользовательский интерфейс через привязку данных.
Для быстрого теста я закомментировал binding.setLifecycleOwner(this)
в одном из своих действий. Результаты подтвердили, что документы соответствуют действительности. Мой пользовательский интерфейс больше не получал изменений от моих LiveData
объектов.