Effektive Ereignisverarbeitung in Android mit BroadcastReceivern

Android bietet eine Vielzahl von Komponenten, die die Entwicklung von robusten und vielseitigen Anwendungen ermöglichen. Eine dieser wichtigen Komponenten ist der BroadcastReceiver. Heute werden wir uns genauer mit dem Android BroadcastReceiver befassen und zeigen, wie er in einer Android-Anwendung implementiert wird.

Was ist ein Android BroadcastReceiver?

Der Android BroadcastReceiver ist eine ruhende Komponente des Android-Betriebssystems, die auf systemweite Broadcast-Ereignisse oder Intents lauscht. Wenn eines dieser Ereignisse auftritt, wird die Anwendung aktiviert, indem entweder eine Statusleistenbenachrichtigung erstellt oder eine Aufgabe ausgeführt wird. Im Gegensatz zu Aktivitäten enthält der Android BroadcastReceiver keine Benutzeroberfläche. Er wird in der Regel implementiert, um je nach Art der empfangenen Intent-Daten Aufgaben an Dienste zu delegieren.

Wichtige systemweit generierte Intents

Einige wichtige systemweit generierte Intents sind:

  • android.intent.action.BATTERY_LOW: Gibt an, dass sich das Gerät im niedrigen Batteriezustand befindet.
  • android.intent.action.BOOT_COMPLETED: Dies wird einmal nach dem vollständigen Hochfahren des Systems ausgestrahlt.
  • android.intent.action.CALL: Um einen Anruf an eine bestimmte Person durchzuführen.
  • android.intent.action.DATE_CHANGED: Das Datum wurde geändert.
  • android.intent.action.REBOOT: Das Gerät neu starten.
  • android.net.conn.CONNECTIVITY_CHANGE: Das Mobilfunknetz oder die WLAN-Verbindung wurde geändert (oder zurückgesetzt).

Implementierung eines BroadcastReceiver in Android

Um einen BroadcastReceiver in einer Android-Anwendung einzurichten, müssen zwei Schritte durchgeführt werden:

  1. Erstellen eines BroadcastReceiver
  2. Registrieren eines BroadcastReceiver

Erstellen eines BroadcastReceiver

Ein benutzerdefinierter BroadcastReceiver kann wie folgt implementiert werden:

public class MyReceiver extends BroadcastReceiver {
    public MyReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Action: " + intent.getAction(), Toast.LENGTH_SHORT).show();
    }
}

Der BroadcastReceiver ist eine abstrakte Klasse, deren Methode onReceive() abstrakt ist. Diese Methode wird zuerst auf den registrierten Broadcast-Receivern aufgerufen, wenn ein Ereignis eintritt. Das Intent-Objekt wird mit allen zusätzlichen Daten übergeben. Ein Context-Objekt ist ebenfalls verfügbar und wird verwendet, um eine Aktivität oder einen Dienst zu starten.

Registrieren des BroadcastReceiver in der Android-App

Ein BroadcastReceiver kann auf zwei Arten registriert werden:

  1. Durch Definition in der AndroidManifest.xml-Datei

 <receiver android:name=".ConnectionReceiver">
     <intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
     </intent-filter>
</receiver>

  1. Durch programmatische Definition

IntentFilter filter = new IntentFilter();
intentFilter.addAction(getPackageName() + "android.net.conn.CONNECTIVITY_CHANGE");

MyReceiver myReceiver = new MyReceiver();
registerReceiver(myReceiver, filter);

Senden von Broadcast-Intents aus der Aktivität

Intent intent = new Intent();
intent.setAction("com.journaldev.CUSTOM_INTENT");
sendBroadcast(intent);

Zusammenfassung

Der BroadcastReceiver ist eine wichtige Komponente von Android, die es ermöglicht, auf systemweite Ereignisse zu reagieren. Durch das Erstellen und Registrieren von BroadcastReceivern können Android-Anwendungen effektiv auf verschiedene Ereignisse reagieren und entsprechende Aktionen ausführen.

Das war eine kurze Einführung und Tutorial zum Android BroadcastReceiver. Hoffentlich hat Ihnen dieser Beitrag dabei geholfen, das Konzept besser zu verstehen und wie es in Ihrer eigenen Android-Entwicklung angewendet werden kann.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren:

centron Managed Cloud Hosting in Deutschland

Java-Array: So prüfst du Werte effizient

JavaScript
Wie prüft man, ob ein Java Array einen Wert enthält? Es gibt viele Möglichkeiten, um zu überprüfen, ob ein Java Array einen bestimmten Wert enthält. Einfache Iteration mit einer for-Schleife…