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