Sobes.tech
Назад к вопросам
Junior — Middle
70

Как реализовать и зарегистрировать BroadcastReceiver в Android-приложении?

Ответ от нейросети

sobes.tech AI

BroadcastReceiver в Android — это компонент, который позволяет приложению реагировать на системные или пользовательские широковещательные сообщения (broadcasts).

Реализация и регистрация BroadcastReceiver:

  1. Создайте класс, наследующий от BroadcastReceiver, и переопределите метод onReceive:
class MyReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        // обработка полученного broadcast
    }
}
  1. Регистрация 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 только пока компонент активен, статическая — всегда (если разрешения позволяют).