Какой компонент можно не указывать в Manifest

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

Ответ

Некоторые компоненты, такие как BroadcastReceiver, можно не объявлять в AndroidManifest.xml, если они регистрируются программно через Context.registerReceiver(). Это удобно для динамических ресиверов, работающих только во время жизни активности/сервиса.

Пример:

val receiver = object : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        // Обработка события
    }
}
val filter = IntentFilter("com.example.ACTION_EVENT")
registerReceiver(receiver, filter)

Важно: такие ресиверы автоматически отменяются при уничтожении контекста (например, активности). Для ContentProvider, Activity, Service и статических BroadcastReceiver объявление в манифесте обязательно.