Ответ
BroadcastReceiver используется для реагирования на системные или кастомные широковещательные сообщения. Основные сценарии:
- Системные события (изменение состояния сети, зарядка, завершение загрузки):
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
-
Межпроцессное взаимодействие (когда нужно уведомить несколько компонентов)
-
Фоновые операции (но с ограничениями начиная с Android 8+)
Важно:
- Для Android 8+ используйте
Context.registerReceiver()вместо манифеста - Избегайте долгих операций - лучше запускать Service/WorkManager
- Для межкомпонентного взаимодействия в одном приложении предпочтительнее LiveData/Flow
Пример регистрации в коде:
val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
// handle event
}
}
registerReceiver(receiver, IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION))