Всего существует три способа отправить броадкаст.
- Использовать метод sendOrderedBroadcast(). При отправке броадкаста таким способом, он отправится последовательно по всем ресиверам, не больше чем к одному ресиверу одновременно. Причем каждый из ресиверов может либо распространить броадкаст дальше, либо не отправлять его остальным ресиверам. Приоритет, в котором ресиверы получают броадкаст настраивается параметром priority объекта intent-filter. Если же у двух или нескольких ресиверов стоит одинаковый приоритет, то они получат броадкаст в случайном порядке.
- Использовать метод sendBroadcast(). При отправке броадкаста таким способом ресиверы получают броадкаст в неопределенном порядке. Это эффективнее с точки зрения быстродействия, но не позволяет ресиверам читать данные от других ресиверов, распространять броадкаст дальше или же прерывать отправку броадкаста.
- Использовать метод LocalBroadcastManager.sendBroadcast(). Если вы отправите броадкаст таким способом, то его получат только ресиверы из того же приложения, что и отправило броадкаст. Такой способ самый эффективный, так что если в приложении не нужно обмениваться сообщениями с другими приложениями, то будет лучше использовать именно этот способ. К тому же не придется переживать о безопасности, связанной с возможностью другими приложениями читать или отправлять ваш броадкаст.