АНДРЕЙ ПАХОМОВ, Android-разработчик, mailforpahomov@gmail.com
Широковещательные сообщения в Android
О важных системных событиях ОС информирует все заинтересованные приложения с помощью рассылки широковещательного сообщения. Разберем, как реагировать на системные сообщения и создавать свои
Android – большая и сложная ОС с множественными компонентами, в которой всегда одновременно выполняется несколько процессов. В работающей системе постоянно происходят события, которые могут быть интересны другим приложениям, а в некоторых случаях информация о наступающем событии может быть критически важна – например, о том, чтопоступило новое СМС-сообщение или что устройство вообще будет выключено через несколько секунд.
Для обработки таких системных широковещательных сообщений разработчику доступен компонент broadcast reciever – дословно «получатель широковещательных сообщений».
В прошлый раз наш журнал писал о паттерне Наблюдатель, который позволяет проинформировать группу объектов о наступивших событиях [1]. Как видите, это достаточно распространенная задача, которая часто бывает уже наполовину решена создателями API-разработки: так, в Java есть специальные лассы Observer и Observable, а в Android существует механизм массовой рассылки сообщений (см. рис. 1).
Рисунок 1. Компоненты Android-приложения
Системные сообщения
В Android несколько десятков ситуаций, о наступлении которых ОС обязательно уведомит всех желающих широковещательным сообщением – от подключения наушников доотключения зарядного устройства. Чтобы понять, как с ними работать, разберем одно из них – добавим приложение в автозагрузку, подписавшись на рассылку соответствующего сообщения.
В отличие от Windows или Linux в Android нет конфигурационных файлов, куда бы можно было прописать приложение для его автозагрузки при старте ОС. Это, конечно, было бы удобно, но противоречит существующей модели безопасности – приложения в Android максимально отделены друг от друга, поэтому наличие единого конфигурационного файла исключено. Тем не менее после того, как пользователь включит свой телефон или планшет на базе Android, часть приложений сразу же начинает свою работу без дополнительной команды от пользователя.
Разработчики Android нашли элегантное решение проблемы отсутствия общих конфигурационных файлов – приложения теперь регулярно рассылают уведомления о наступающих событиях, позволяя немедленно на них реагировать.
Статью целиком читайте в журнале «Системный администратор», №06 за 2016 г. на страницах 57-61.
PDF-версию данного номера можно приобрести в нашем магазине.
- Пахомов А. Пишем мобильные приложения быстрее. Паттерн Наблюдатель и реактивное программирование. // «Системный администратор», №5, 2016 г. – С. 44-47 (http://samag.ru/archive/article/3194).
- В папке с установленным SDK: platforms/android-Версия_API/data/broadcast_actions.txt.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|