Действительно ли SingleLiveEvent является частью библиотеки компонентов архитектуры Android?

Я использую класс SingleLiveData, который можно найти здесь. Мои вопросы:

  1. Является ли SingleLiveData частью компонентов архитектуры Android?

  2. Это хорошая идея, чтобы использовать его?


person Archie G. Quiñones    schedule 10.08.2018    source источник
comment
Вы можете прочитать это medium.com/google-developers/   -  person Raghunandan    schedule 10.08.2018


Ответы (3)


Глядя на оперативные данные и их наследование Parent/Children, таких вещей нет. как SingleLiveData. Читая ссылку, предоставленную @Raghu, я нахожу утверждение:

SingleLiveEvent был создан для примера в качестве решения, которое работало для этого конкретного сценария. Это LiveData, который будет отправлять обновление только один раз.

Итак, чтобы ответить на ваши вопросы:

Действительно ли SingleLiveData является частью компонентов архитектуры Android?

Нет это не так!

Это хорошая идея, чтобы использовать его?

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

Но в целом я бы избегал этого, если бы мог найти что-то, что хорошо обслуживается и выполняет ту же работу.

Поскольку после просмотра статьи у меня сложилось впечатление, что он пытается создать какой-то шаблон наблюдателя, я предлагаю вам проверить rxjava

person Stefano Mtangoo    schedule 10.08.2018
comment
Я предлагаю вам проверить rxjava 1) который полностью превосходит цель использования livedata 2) аргумент об исправлении ошибок и обслуживании не имеет большого веса в этом случае, учитывая, что класс длиной около 10 строк - person Tim; 09.04.2019
comment
Разве SingleLiveData не является анти-шаблоном? - person Cassio Landim; 02.07.2020

Действительно ли SingleLiveEvent является частью библиотеки компонентов архитектуры Android?

Нет и не будет: https://issuetracker.google.com/issues/122413110. По сути, официальный ответ таков: "Да, обычных оперативных данных было недостаточно, поэтому мы добавили их в наши примеры, но они слишком хакерские, чтобы быть в библиотеке".

person Ghedeon    schedule 16.03.2019
comment
Так что это слишком хакерски, но это единственный способ вернуть отдельные события в представление. Это звучит так удручающе. - person Archie G. Quiñones; 16.03.2019
comment
Абсурд Android-разработки в одном предложении. - person WindRider; 05.07.2019

Я использую ObservableField для отдельных событий пользовательского интерфейса, но для его использования требуется некоторый взлом с фрагментами для автоматической подписки/отписки.

person Arthur    schedule 13.07.2020