Работал ли с BroadcastReceiver

«Работал ли с BroadcastReceiver» — вопрос из категории Android компоненты, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Типы BroadcastReceiver:

  • Статический (регистрируется в AndroidManifest.xml) — работает даже при закрытом приложении.
  • Динамический (регистрируется в коде через registerReceiver()) — работает только при активности приложения.

Пример динамической регистрации:

val receiver = object : BroadcastReceiver() {  
    override fun onReceive(context: Context?, intent: Intent?) {  
        if (intent?.action == "MY_CUSTOM_ACTION") {  
            // Обработка события  
        }  
    }  
}  

override fun onStart() {  
    super.onStart()  
    registerReceiver(receiver, IntentFilter("MY_CUSTOM_ACTION"))  
}  

override fun onStop() {  
    super.onStop()  
    unregisterReceiver(receiver)  
}  

Важно:

  • Для Android 8.0+ многие системные события требуют явной регистрации в коде.
  • Не забывать отменять регистрацию, чтобы избежать утечек памяти.