Skip to content

Latest commit

 

History

History
38 lines (26 loc) · 2.52 KB

File metadata and controls

38 lines (26 loc) · 2.52 KB

Главная

Шина сообщений

Шина сообщений нужна, когда необходимо реагировать на те или иные события. Это могут быть как события пользовательского интерфейса, так и служебные события внутри приложения.

Не стоит переусердствовать с шиной. Слишком частое ее использование, может привести к запутыванию. Следует использовать только в том случае, если нет других вариантов.

Из-за создаваемой сложности шину сообщений разрешено использовать только в контексте Activity для связывания нескольких презентеров. Кейсы:

  • 2 фрагмента лежат на одной активити, и должны реагировать на события друг друга;

  • Несколько виджетов на одном экране;

  • Различная навигация в зависимости от того, что за девайс - планшет или телефон. Например в случае телефона открывается экран, а в случае планшета посылается событие через шину в соседний презентер.

Реализация такой шины представлена модулем rxbus.

В остальных случаях для рассылки событий следует использовать Эммитер внутри интерактора. Таким образом например можно связать несколько активити. Кейс: по удачному запросу удаления элемента обновить данные на предыдущих Activity в стеке.

Важно : для рассылки событий внутри приложения не используем BroadcastReceiver.

Для подписки на внешние события(системные) используется обертка над BroadCastReceiver.