¿En qué se diferencian los métodos dinámico y estático de registrar BroadcastReceiver en Android?
sobes.tech AI
Respuesta de la IA
En Android, hay dos formas de registrar un BroadcastReceiver: estático y dinámico.
Estático se registra en el manifiesto de la aplicación (AndroidManifest.xml). Este receptor se activa por el sistema incluso si la aplicación no está en ejecución. Es útil para escuchar mensajes broadcast del sistema, pero desde Android 8.0 (Oreo), el registro estático está limitado para la mayoría de los eventos.
Dinámico se registra programáticamente en el código (generalmente en un Activity o Service) usando el método registerReceiver(). Este receptor solo está activo mientras el objeto en el que se registró esté vivo, y requiere llamar explícitamente a unregisterReceiver(). El registro dinámico es más flexible y permite escuchar mensajes broadcast solo durante la ejecución del componente.
Ejemplo de registro dinámico:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// procesamiento del evento
}
};
// En onCreate() o onStart()
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// En onDestroy() o onStop()
unregisterReceiver(receiver);