Каким образом работал с Broadcast

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

Ответ

Broadcast в Android — это механизм для рассылки событий между компонентами. Есть два типа:

  1. Системные Broadcast (например, ACTION_BATTERY_LOW) — объявляются системой.
  2. Пользовательские Broadcast — создаются разработчиком.

Способы работы:

  • Динамическая регистрация (через registerReceiver() в Activity/Service). Отписываться в onDestroy():
val receiver = object : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        // Обработка события
    }
}
registerReceiver(receiver, IntentFilter("CUSTOM_ACTION"))
  • Статическая регистрация (через AndroidManifest.xml). Работает даже при закрытом приложении:
<receiver android:name=".MyReceiver">
    <intent-filter>
        <action android:name="CUSTOM_ACTION" />
    </intent-filter>
</receiver>

Нюансы:

  • На Android 8+ нельзя регистрировать неявные Broadcast статически (кроме разрешенных системных).
  • Для межпроцессного взаимодействия лучше использовать LocalBroadcastManager (устарел) или LiveData/Flow + ViewModel.