Comprendre les diffusions Android
Voici un résumé des points clés du système de diffusion Android :
1. Concepts de base du système de diffusion
- Analogie concrète : Similaire aux haut-parleurs, radios et télévisions, « envoyé depuis un endroit et reçu par plusieurs ».
- Mécanisme Android : Propose un système de messages de diffusion flexible. Chaque application peuts’inscrire aux diffusions qui l’intéressentet ne recevoir que le contenu ciblé.
- Sources de diffusion : Peuvent provenir dusystème(démarrage de l’appareil, variation du niveau de batterie) ou d’autres applications.
- Envoi et réception : Les diffusions sont généralement envoyées viaIntent; la réception utilise BroadcastReceiver. Android fournit une API complète pour envoyer et recevoir librement des diffusions.
2. Classification et comparaison des diffusions
Les diffusions Android se divisent principalement endiffusions normalesetdiffusions ordonnées. Leurs différences principales sont ci-dessous :
| Critère de comparaison | Diffusion normale (Normal Broadcast) | Diffusion ordonnée (Ordered Broadcast) |
|---|---|---|
| Mode d’exécution | Entièrementasynchrone | Exécution séquentiellesynchrone |
| Moment de réception | Tous les récepteursreçoivent simultanémentaprès l’envoi | Un seulrécepteur à la fois; le suivant ne traite qu’après le précédent |
| Ordre de réception | Aucun ordre défini | Ordre défini ; les récepteurs àpriorité élevéereçoivent en premier |
| Mécanisme d’interruption | Impossible d’interrompre, tous les récepteurs reçoivent | Un récepteur précoce peutinterrompre la diffusion, bloquant les suivants |
| Efficacité | Très efficace | Plus lent (selon la chaîne de transmission) |
3. Explication du flux de travail
- Diffusion normale
Envoi d’une diffusion→ Distribuée en parallèle àBroadcastReceiver 1,BroadcastReceiver 2,BroadcastReceiver 3(transmission radiale, pas d’interception). - Diffusion ordonnée
Envoi d’une diffusion→BroadcastReceiver 1(peut interrompre) →BroadcastReceiver 2(peut interrompre) →BroadcastReceiver 3(transmission linéaire).