Kurztipp: So verwenden Sie die EventBus-Bibliothek

Das Erstellen einer Android-Anwendung mit mehreren aktiven Komponenten, die miteinander kommunizieren, kann mühsam werden. Um Zeit zu sparen, haben Entwickler häufig eng gekoppelte Komponenten in ihren Anwendungen. EventBus ist eine beliebte Open-Source-Bibliothek, die erstellt wurde, um dieses Problem mithilfe von zu lösen Herausgeber / Abonnent Modell.

Mit der EventBus-Bibliothek können Sie Nachrichten von einer Klasse in nur wenigen Codezeilen an eine oder mehrere Klassen übergeben. Darüber hinaus sind alle beteiligten Klassen vollständig voneinander entkoppelt, was zu weniger komplexem Code führt, der einfacher zu warten und zu debuggen ist.

In diesem kurzen Tipp erfahren Sie, wie Sie die EventBus-Bibliothek verwenden, indem Sie eine einfache Android-App erstellen, die den Ladezustand des Geräts anzeigt. Da Änderungen des Ladezustands Systemereignisse sind, hat die Anwendung eine Activity Wer muss Informationen von einem erhalten BroadcastReceiver– Das ideale Szenario für die Verwendung eines Ereignisbusses.

Voraussetzungen

Stellen Sie sicher, dass das Eclipse ADT-Bundle konfiguriert ist. Sie können es von herunterladen Android-Entwickler-Website.

1. Erstellen Sie ein neues Projekt

Starten Sie Eclipse und erstellen Sie eine neue Android-App. Benennen Sie die Anwendung EventBusSample. Wählen Sie einen eindeutigen Paketnamen und legen Sie ihn fest SDK-Mindestanforderungen beim Android 2.2 und das SDK-Kabel beim Android 4.4.

Wir werden das schaffen Activity uns selbst, also abwählen Erstellen Sie eine Aktivität und klicken Sie auf Fertig.

Deaktivieren Sie

2. Manifest bearbeiten

Diese App hat eine BroadcastReceiver welches auf die folgenden Aktionen reagiert:

  • android.intent.action.ACTION_POWER_CONNECTED
  • android.intent.action.ACTION_POWER_DISCONNECTED

Nennen Sie es BroadcastReceiver ChargingReceiver und deklarieren Sie es in der AndroidManifest.xml Datei.

Die App hat eine Activity um den Ladezustand anzuzeigen. Nennen Sie es DisplayActivity und deklarieren Sie es wie unten gezeigt.

3. Fügen Sie eine EventBus-Bibliothek hinzu

Laden Sie die neueste Version der EventBus-Bibliothek als JAR von herunter Maven Central und fügen Sie die JAR in Ihr Projekt ein libs Telefonbuch.

4. Erstellen ChargingEvent Klassenzimmer

Die Ereignisse auf dem Ereignisbus sind nur Objekte, die die Informationen enthalten, die übermittelt werden müssen. Lassen ChargingEvent sei der Name der Klasse, die die von der BroadcastReceiver zum Activity. Dies ist eine einfache Klasse, die nur eine hat String Informationen darstellen. Es gibt auch einen Konstruktor zum Festlegen des Werts der Zeichenfolge und einen Accessor zum Abrufen des Werts.

Erstellen Sie eine neue Datei mit dem Namen ChargingEvent.java und fügen Sie den folgenden Code hinzu:

5. Erstellen BroadcastReceiver Klassenzimmer

Erstellen Sie eine neue Klasse mit dem Namen ChargingReceiver Ausdehnung BroadcastReceiver. Diese Klasse verwendet den Ereignisbus zum Posten von Nachrichten. Es hat eine Variable namens busDies bezieht sich auf den von der EventBus-Bibliothek erstellten Bus. Der Bus ist ein Singleton und Sie müssen die verwenden getDefault Methode, um darauf zu verweisen.

in dem onReceive Methode erstellen wir eine neue Instanz der ChargingEvent Klasse und fügen Sie unsere Nachricht hinzu. Hier ist eine Beispielnachricht:

Um diese Nachricht zu generieren, müssen wir Folgendes tun:

  • Verwenden Sie die im Time Klasse, um die Zeit festzulegen, zu der das Ereignis aufgetreten ist.
  • Fügen Sie die Zeichenfolge „Dieses Gerät hat den Ladevorgang gestartet | hinzu Entladen “abhängig von der empfangenen Aktion. Wenn die empfangene Aktion ist
    Intent.ACTION_POWER_CONNECTEDwird das Gerät aufgeladen. Wenn es
    Intent.ACTION_POWER_DISCONNECTEDentlädt sich das Gerät.

Sobald die ChargingEvent Das Objekt hat die richtigen Informationen, es wird mit dem auf dem Ereignisbus veröffentlicht post Methode. Die Implementierung von ChargingReceiver Die Klasse sollte jetzt so aussehen:

Wie Sie sehen können, benötigt das Senden von Nachrichten an den Ereignisbus nur eine Codezeile. Darüber hinaus muss der Herausgeber nichts über die Abonnenten wissen.

6. Erstellen DisplayActivity Klassenzimmer

Erstellen Sie eine neue Klasse mit dem Namen DisplayActivity. Diese Klasse ist für die Anzeige der auf dem Ereignisbus veröffentlichten Ereignismeldungen verantwortlich.

Diese Klasse hat auch eine Variable, die sich auf den Ereignisbus bezieht. Da die EventBus-Bibliothek dem Singleton-Muster folgt, ist die verfügbare Ereignisbusinstanz Activity ist die gleiche wie die Instanz, die für die verfügbar ist BroadcastReceiver.

Damit eine Klasse Ereignisse im Bus abonnieren kann, muss die register Methode wird aufgerufen. In unserer Activitynennen wir es in der onCreate Methode.

Um keine Ereignisse mehr zu empfangen, muss die unregister Methode wird aufgerufen. Wir nennen diese Methode in der onDestroy um sicherzustellen, dass alle Ressourcen freigegeben werden.

das Activity hat ein sehr einfaches Layout, das nur eines enthält TextView welches Nachrichten anzeigt. Es ist daher nicht erforderlich, ein Layout dafür zu erstellen. Wir benutzen nur die TextView als Blick auf den Inhalt von Activity.

In dieser Phase ist die Umsetzung der DisplayActivity Die Klasse sollte folgendermaßen aussehen:

Jede Klasse, die Ereignisse vom Ereignisbus empfangen möchte, muss a enthalten onEvent Methode. Der Name dieser Methode ist wichtig, da die EventBus-Bibliothek die verwendet API Java Reflection um auf diese Methode zuzugreifen. Es hat einen einzelnen Parameter, der sich auf das Ereignis bezieht. In unserem Fall ist der Parameter vom Typ ChargingEvent.

Bei dieser Methode wird lediglich die zuletzt empfangene Nachricht an den Inhalt des angehängt TextView. Die Implementierung von onEvent Die Methode sieht folgendermaßen aus:

sept. Ausführen und testen

Die Anwendung kann jetzt getestet werden. Kompilieren Sie es und führen Sie es auf einem physischen Android-Gerät aus. Nachdem die App fertig ist, stecken Sie das Netzkabel mehrmals ein und aus, um zu sehen, wie sich der Ladestatus ändert.

Fazit

In diesem Tutorial haben Sie gelernt, wie Sie die EventBus-Bibliothek verwenden und wie sie die Kommunikation zwischen Klassen vereinfacht. Die Bibliothek ist für die Android-Plattform optimiert und sehr leicht. Dies bedeutet, dass Sie es in Ihren Projekten verwenden können, ohne sich um die Größe Ihrer App kümmern zu müssen. Um mehr über die EventBus-Bibliothek zu erfahren, besuchen Sie das Projekt unter GitHub.

verbunden :  So erhalten Sie die besten Pixel 2-Funktionen auf jedem Android-Handy
Moyens Staff
Moyens I/O-Personal. motivierte Sie und gab Ratschläge zu Technologie, persönlicher Entwicklung, Lebensstil und Strategien, die Ihnen helfen werden.