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

Можно ли создать и зарегистрировать Broadcast Receiver во время исполнения программы, а не через манифест?

Компании, где спрашивали
МТС ЛинкМТС Линк

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

sobes.tech AI

Да, в Android можно создать и зарегистрировать BroadcastReceiver динамически во время выполнения программы, а не только через манифест. Для этого используется метод registerReceiver() в коде, обычно в Activity или Service. Такой прием позволяет принимать широковещательные сообщения только пока активен компонент, что удобно для экономии ресурсов и безопасности.

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

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // Обработка полученного сообщения
    }
};

// Регистрация
registerReceiver(receiver, new IntentFilter("android.intent.action.SOME_ACTION"));

// Не забывайте отписываться
unregisterReceiver(receiver);

В отличие от регистрации в манифесте, динамически зарегистрированные ресиверы живут только пока активен компонент, который их зарегистрировал.