Шина сообщений нужна, когда необходимо реагировать на те или иные события. Это могут быть как события пользовательского интерфейса, так и служебные события внутри приложения.
Не стоит переусердствовать с шиной. Слишком частое ее использование, может привести к запутыванию. Следует использовать только в том случае, если нет других вариантов.
Из-за создаваемой сложности шину сообщений разрешено использовать только в контексте Activity для связывания нескольких презентеров. Кейсы:
-
2 фрагмента лежат на одной активити, и должны реагировать на события друг друга;
-
Несколько виджетов на одном экране;
-
Различная навигация в зависимости от того, что за девайс - планшет или телефон. Например в случае телефона открывается экран, а в случае планшета посылается событие через шину в соседний презентер.
Реализация такой шины представлена модулем rxbus.
В остальных случаях для рассылки событий следует использовать Эммитер внутри интерактора. Таким образом например можно связать несколько активити. Кейс: по удачному запросу удаления элемента обновить данные на предыдущих Activity в стеке.
Важно : для рассылки событий внутри приложения не используем BroadcastReceiver.
Для подписки на внешние события(системные) используется обертка над BroadCastReceiver.