Я использую класс SingleLiveData
, который можно найти здесь. Мои вопросы:
Является ли
SingleLiveData
частью компонентов архитектуры Android?Это хорошая идея, чтобы использовать его?
Я использую класс SingleLiveData
, который можно найти здесь. Мои вопросы:
Является ли SingleLiveData
частью компонентов архитектуры Android?
Это хорошая идея, чтобы использовать его?
Глядя на оперативные данные и их наследование Parent/Children, таких вещей нет. как SingleLiveData. Читая ссылку, предоставленную @Raghu, я нахожу утверждение:
SingleLiveEvent был создан для примера в качестве решения, которое работало для этого конкретного сценария. Это LiveData, который будет отправлять обновление только один раз.
Итак, чтобы ответить на ваши вопросы:
Действительно ли SingleLiveData является частью компонентов архитектуры Android?
Нет это не так!
Это хорошая идея, чтобы использовать его?
Это зависит от многих факторов. Поскольку я не использовал его, я дам общее представление. Использование классов, которые вы найдете в демонстрационном приложении или другим способом, может не гарантировать обновление или исправление ошибок. Поэтому, если вы понимаете класс настолько хорошо, что можете исправить любую ошибку, которую вы можете найти, и если она соответствует вашим потребностям, используйте ее.
Но в целом я бы избегал этого, если бы мог найти что-то, что хорошо обслуживается и выполняет ту же работу.
Поскольку после просмотра статьи у меня сложилось впечатление, что он пытается создать какой-то шаблон наблюдателя, я предлагаю вам проверить rxjava
Действительно ли SingleLiveEvent является частью библиотеки компонентов архитектуры Android?
Нет и не будет: https://issuetracker.google.com/issues/122413110. По сути, официальный ответ таков: "Да, обычных оперативных данных было недостаточно, поэтому мы добавили их в наши примеры, но они слишком хакерские, чтобы быть в библиотеке".
Я использую ObservableField для отдельных событий пользовательского интерфейса, но для его использования требуется некоторый взлом с фрагментами для автоматической подписки/отписки.