Come si differenziano i metodi dinamico e statico di registrazione di BroadcastReceiver in Android?
sobes.tech AI
Risposta dell'AI
Su Android, ci sono due modi per registrare un BroadcastReceiver — statico e dinamico.
Statico viene registrato nel manifesto dell'app (AndroidManifest.xml). Questo ricevitore viene attivato dal sistema anche se l'app non è in esecuzione. È utile per ascoltare i messaggi broadcast di sistema, ma a partire da Android 8.0 (Oreo), la registrazione statica è limitata per la maggior parte degli eventi.
Dinamico viene registrato programmaticamente nel codice (solitamente in un Activity o Service) usando il metodo registerReceiver(). Questo ricevitore è attivo solo mentre l'oggetto in cui è registrato è vivo, e richiede una chiamata esplicita a unregisterReceiver(). La registrazione dinamica è più flessibile e permette di ascoltare i messaggi broadcast solo durante l'esecuzione del componente.
Esempio di registrazione dinamica:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// elaborazione evento
}
};
// In onCreate() o onStart()
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// In onDestroy() o onStop()
unregisterReceiver(receiver);