Astuce rapide: Comment utiliser la bibliothèque EventBus 1

Astuce rapide: Comment utiliser la bibliothèque EventBus

Créer une application Android comportant plusieurs composants actifs communiquant entre eux peut devenir fastidieux. Pour gagner du temps, les développeurs se retrouvent souvent avec des composants étroitement couplés dans leurs applications. EventBus est une bibliothèque open-source populaire qui a été créée pour résoudre ce problème en utilisant le éditeur / abonné modèle.

En utilisant la bibliothèque EventBus, vous pouvez transmettre des messages d’une classe à une ou plusieurs classes en seulement quelques lignes de code. De plus, toutes les classes impliquées sont complètement découplées les unes des autres, conduisant à un code moins complexe et plus facile à maintenir et à déboguer.

Dans cette astuce rapide, vous allez apprendre à utiliser la bibliothèque EventBus en créant une application Android simple qui affiche l’état de charge de l’appareil. Étant donné que les changements dans l’état de charge sont des événements système, l’application va avoir un Activity qui a besoin de recevoir des informations d’un BroadcastReceiver—Le scénario idéal pour utiliser un bus d’événements.

Conditions préalables

Assurez-vous que le bundle Eclipse ADT est configuré. Vous pouvez le télécharger depuis le Site Web des développeurs Android.

1. Créer un nouveau projet

Démarrez Eclipse et créez une nouvelle application Android. Nommez l’application EventBusSample. Choisissez un nom de package unique et définissez le SDK minimum requis à Android 2.2 et le SDK cible à Android 4.4.

Créer une nouvelle application Android

Nous allons créer le Activity nous-mêmes, alors désélectionnez Créer une activité et cliquez terminer.

Désélectionnez Créer une activité et cliquez sur Terminer

2. Modifier le manifeste

Cette application en a un BroadcastReceiver qui répond aux actions suivantes:

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

Nomme le BroadcastReceiver ChargingReceiver et déclarez-le dans le AndroidManifest.xml fichier.

L’application en a un Activity pour afficher l’état de charge. Nomme le DisplayActivity et déclarez-le comme indiqué ci-dessous.

3. Ajouter une bibliothèque EventBus

Téléchargez la dernière version de la bibliothèque EventBus en tant que JAR à partir de Maven Central et ajoutez le JAR dans votre projet libs annuaire.

4. Créer ChargingEvent Classe

Les événements sur le bus d’événements ne sont que des objets contenant les informations qui doivent être communiquées. Laisser ChargingEvent être le nom de la classe qui contient les informations transmises par le BroadcastReceiver à la Activity. Il s’agit d’une classe simple qui n’a qu’un String pour représenter l’information. Il a également un constructeur pour définir la valeur de la chaîne et un accesseur pour obtenir sa valeur.

Créez un nouveau fichier nommé ChargingEvent.java et ajoutez-y le code suivant:

5. Créer BroadcastReceiver Classe

Créez une nouvelle classe nommée ChargingReceiver qui s’étend BroadcastReceiver. Cette classe utilise le bus d’événements pour publier des messages. Il a une variable nommée bus, qui fait référence au bus créé par la bibliothèque EventBus. Le bus est un singleton et vous devez utiliser le getDefault méthode pour s’y référer.

dans le onReceive méthode, nous créons une nouvelle instance de la ChargingEvent classe et ajoutez-y notre message. Voici un exemple de message:

Pour générer ce message, nous devons procéder comme suit:

  • Utilisez les méthodes disponibles dans le Time class pour définir l’heure à laquelle l’événement s’est produit.
  • Ajoutez la chaîne « cet appareil a commencé à charger | déchargement » en fonction de l’action reçue. Si l’action reçue est
    Intent.ACTION_POWER_CONNECTED, l’appareil est en cours de chargement. Si c’est
    Intent.ACTION_POWER_DISCONNECTED, l’appareil se décharge.

Une fois la ChargingEvent l’objet a les bonnes informations, il est publié sur le bus d’événements à l’aide du post méthode. La mise en œuvre du ChargingReceiver la classe devrait maintenant ressembler à ceci:

Comme vous pouvez le voir, la publication de messages sur le bus d’événements ne prend qu’une seule ligne de code. De plus, l’éditeur n’a pas besoin de savoir quoi que ce soit sur le (s) abonné (s).

6. Créer DisplayActivity Classe

Créez une nouvelle classe nommée DisplayActivity. Cette classe est chargée d’afficher les messages des événements publiés sur le bus d’événements.

Cette classe a également une variable qui fait référence au bus d’événements. Comme la bibliothèque EventBus suit le modèle singleton, l’instance du bus d’événements disponible Activity est la même que l’instance disponible pour le BroadcastReceiver.

Pour permettre à une classe de s’abonner à des événements sur le bus, le register méthode est appelée. Dans notre Activity, nous l’appelons dans le onCreate méthode.

De même, pour ne plus recevoir d’événements, le unregister méthode est appelée. Nous appelons cette méthode dans le onDestroy pour vous assurer que toutes les ressources sont libérées.

le Activity a une disposition très basique, contenant seulement un TextView qui affiche les messages. Il n’est donc pas nécessaire de créer un layout pour celui-ci. Nous utilisons simplement le TextView comme vue du contenu du Activity.

À ce stade, la mise en œuvre du DisplayActivity la classe devrait ressembler à ceci:

Chaque classe qui a l’intention de recevoir des événements du bus d’événements doit contenir un onEvent méthode. Le nom de cette méthode est important, car la bibliothèque EventBus utilise le API Java Reflection pour accéder à cette méthode. Il a un seul paramètre qui fait référence à l’événement. Dans notre cas, le paramètre sera de type ChargingEvent.

Tout ce que nous faisons dans cette méthode est d’ajouter le dernier message reçu au contenu du TextView. La mise en œuvre du onEvent La méthode ressemble à ceci:

sept. Exécuter et tester

L’application est maintenant prête à être testée. Compilez et exécutez-le sur un appareil Android physique. Une fois l’application terminée, branchez et débranchez le cordon d’alimentation plusieurs fois pour voir le statut de charge changer.

Conclusion

Dans ce didacticiel, vous avez appris à utiliser la bibliothèque EventBus et à quel point elle simplifie la communication entre les classes. La bibliothèque est optimisée pour la plate-forme Android et est très légère. Cela signifie que vous pouvez l’utiliser dans vos projets sans avoir à vous soucier de la taille de votre application. Pour en savoir plus sur la bibliothèque EventBus, visitez le projet sur GitHub.

Soutenez notre effort ❤️

Si vous avez apprécié cet article, pensez à laisser un pourboire pour nous aider à continuer à publier du contenu de qualité.

Paiement sécurisé sur PayPal
Moyens I/O Staff est une équipe de rédacteurs spécialisés, passionnés par la technologie, l’innovation et les usages numériques. Forts d’une expertise pointue en IA, applications mobiles, gaming et tendances digitales, nous produisons un contenu rigoureux, vérifié et utile. Notre mission : vous offrir une information fiable et claire pour mieux naviguer dans le monde numérique en constante évolution. Découvrez les avis de nos lecteurs sur Trustpilot.