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 :
- Créer une classe qui hérite de
BroadcastReceiveret redéfinir la méthodeonReceive(Context context, Intent intent). - 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.
- De manière statique — dans le manifeste (
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.