Junior — Middle
¿Se puede crear y registrar un Broadcast Receiver durante la ejecución del programa, en lugar de a través del manifiesto?
sobes.tech AI
Respuesta de la IA
Да, в 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);
В отличие от регистрации в манифесте, динамически зарегистрированные ресиверы живут только пока активен компонент, который их зарегистрировал.