Sobes.tech
Junior — Middle

Comment implémenter la réception et le traitement des messages broadcast dans une application Android?

sobes.tech IA

Réponse de l'IA

Pour recevoir et traiter les messages de diffusion (broadcasts) dans une application Android, la classe BroadcastReceiver est utilisée.

Étapes principales :

  1. Créer une classe qui hérite de BroadcastReceiver et redéfinir la méthode onReceive(Context context, Intent intent).
  2. Enregistrer le récepteur :
    • De manière statique — dans le manifeste (AndroidManifest.xml) en indiquant un filtre d'intents (<intent-filter>).
    • De manière dynamique — dans le code en utilisant registerReceiver() et en spécifiant un filtre.

Exemple d'enregistrement dynamique :

public class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // Traitement du message
        String action = intent.getAction();
        if ("android.net.conn.CONNECTIVITY_CHANGE".equals(action)) {
            // Réagir aux changements de connectivité
        }
    }
}

// Dans une Activity ou un Service
MyReceiver receiver = new MyReceiver();
IntentFilter filter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(receiver, filter);

// N'oubliez pas de désenregistrer
unregisterReceiver(receiver);

Il est important de noter qu'à partir d'Android 8.0 (API 26), de nombreux messages de diffusion ne peuvent pas être reçus via l'enregistrement statique dans le manifeste, il est donc recommandé d'utiliser l'enregistrement dynamique.

Ainsi, la réception des messages de diffusion se fait via BroadcastReceiver et l'enregistrement des filtres appropriés.