Назад к вопросам
МТС Линк
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);
В отличие от регистрации в манифесте, динамически зарегистрированные ресиверы живут только пока активен компонент, который их зарегистрировал.