Назад к вопросам
Junior — Middle
70
Как реализовать и зарегистрировать BroadcastReceiver в Android-приложении?
Ответ от нейросети
sobes.tech AI
BroadcastReceiver в Android — это компонент, который позволяет приложению реагировать на системные или пользовательские широковещательные сообщения (broadcasts).
Реализация и регистрация BroadcastReceiver:
- Создайте класс, наследующий от BroadcastReceiver, и переопределите метод onReceive:
class MyReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
// обработка полученного broadcast
}
}
- Регистрация BroadcastReceiver может быть двух типов:
- Статическая регистрация — в AndroidManifest.xml:
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
- Динамическая регистрация — в коде, например, в Activity или Service:
val receiver = MyReceiver()
val filter = IntentFilter(Intent.ACTION_BATTERY_CHANGED)
registerReceiver(receiver, filter)
// не забудьте отписаться
unregisterReceiver(receiver)
Динамическая регистрация позволяет принимать broadcasts только пока компонент активен, статическая — всегда (если разрешения позволяют).