Android-Broadcasts verstehen
Im Folgenden werden die zentralen Grundlagen des Android-Broadcast-Systems zusammengefasst:
1. Grundkonzepte des Broadcast-Systems
- Analogie aus dem Alltag: Ähnlich wie Lautsprecher, Radios oder Fernseher – „von einer Stelle gesendet, an mehrere Stellen empfangen“.
- Android-Mechanismus: Bietet ein flexibles System für Broadcast-Nachrichten. Jede App kann sichfür interessante Broadcasts registrierenund erhält nur ausgewählte Inhalte.
- Broadcast-Quellen: Können vomSystem(Gerätestart, Änderung des Akkustands) oder vonanderen Anwendungenstammen.
- Senden und Empfangen: Broadcasts werden üblicherweise überIntentversandt; der Empfang erfolgt mit BroadcastReceiver. Android stellt eine vollständige API zum freien Senden und Empfangen bereit.
2. Arten und Vergleich von Broadcasts
Android-Broadcasts unterteilen sich hauptsächlich innormale Broadcastsundgeordnete Broadcasts. Die zentralen Unterschiede sind nachfolgend aufgeführt:
| Vergleichskriterium | Normaler Broadcast (Normal Broadcast) | Geordneter Broadcast (Ordered Broadcast) |
|---|---|---|
| Ausführungsart | Vollständigasynchron | Synchronesequenzielle Ausführung |
| Empfangszeitpunkt | Alle Empfängerempfangen gleichzeitignach dem Versand | Nurein Empfänger zur selben Zeit; der nächste läuft erst nach Abschluss der Verarbeitung |
| Empfangsreihenfolge | Keine festgelegte Reihenfolge | Reihenfolge festgelegt; Empfänger mithöherer Prioritäterhalten zuerst |
| Abbruchmechanismus | Nicht abbrechbar, alle Empfänger erhalten den Broadcast | Frühere Empfänger können denBroadcast abbrechenund nachfolgende blockieren |
| Leistung | Hoch effizient | Relativ langsamer (abhängig von der Übertragungskette) |
3. Erklärung des Ablaufdiagramms
- Normaler Broadcast
Broadcast senden→ Gleichzeitig verteilt anBroadcastReceiver 1,BroadcastReceiver 2,BroadcastReceiver 3(radiale Übertragung, kein Abbruch möglich). - Geordneter Broadcast
Broadcast senden→BroadcastReceiver 1(kann abbrechen) →BroadcastReceiver 2(kann abbrechen) →BroadcastReceiver 3(lineare Übertragung).