Использование LiveData в привязке данных вместо MutableLiveData - PullRequest
0 голосов
/ 11 февраля 2019

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

1 Ответ

0 голосов
/ 11 февраля 2019

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

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

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

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

...