Тег receiver
Тег receiver объявляет
BroadcastReceiver,
который система или другие приложения
могут будить через intent.
Статический receiver описывают в манифесте,
динамический вешают в коде на Context.
Внутри часто ставят
intent-filter
с action, например BOOT_COMPLETED.
Синтаксис
<receiver
android:name=".MyReceiver"
android:exported="false" />
Параметры
| Параметр | Описание |
|---|---|
name |
Класс приёмника. |
exported |
Могут ли внешние приложения слать intent
этому receiver. Для системных событий
часто true с узким intent-filter.
|
enabled |
Можно ли вообще вызывать компонент. По умолчанию включён. |
permission |
Разрешение, которое должно быть у отправителя broadcast. |
Пример
Давайте зарегистрируем receiver без экспорта наружу:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:label="@string/app_name">
<receiver
android:name=".LocalReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.example.app.SYNC_DONE" />
</intent-filter>
</receiver>
</application>
</manifest>
Система доставит broadcast с action
com.example.app.SYNC_DONE
только компонентам вашего пакета.
Смотрите также
-
тег
intent-filter,
которым выбирают action для receiver -
тег
action,
имя события в intent-filter -
тег
service,
другой фоновый компонент -
тег
uses-permission,
если receiver реагирует на защищённые события