Quelle est la différence entre la méthode d'enregistrement dynamique et statique de BroadcastReceiver dans Android?
sobes.tech IA
Réponse de l'IA
Sur Android, il existe deux façons d'enregistrer un BroadcastReceiver : statique et dynamique.
Statique est enregistré dans le manifeste de l'application (AndroidManifest.xml). Ce récepteur est activé par le système même si l'application n'est pas en cours d'exécution. Il est pratique pour écouter les messages broadcast système, mais à partir d'Android 8.0 (Oreo), l'enregistrement statique est limité pour la plupart des événements.
Dynamique est enregistré par programmation dans le code (généralement dans un Activity ou Service) à l'aide de la méthode registerReceiver(). Ce récepteur n'est actif que tant que l'objet dans lequel il est enregistré est vivant, et nécessite un appel explicite à unregisterReceiver(). L'enregistrement dynamique est plus flexible et permet d'écouter les messages broadcast uniquement pendant l'exécution du composant.
Exemple d'enregistrement dynamique :
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// traitement de l'événement
}
};
// Dans onCreate() ou onStart()
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// Dans onDestroy() ou onStop()
unregisterReceiver(receiver);