Sprievodca po EventBus spoločnosti Guava
1. Prehľad
Knižnica Guava poskytuje EventBus čo umožňuje komunikáciu medzi komponentmi publikovať a prihlásiť sa na odber. V tomto výučbe sa pozrieme na to, ako používať niektoré z funkcií EventBus.
2. Inštalácia
Na začiatok pridáme závislosť knižnice Google Guava do pom.xml:
com.google.guava guava 29.0-jre
Najnovšiu verziu nájdete tu. 3. Pomocou EventBus
Začnime na jednoduchom príklade.
3.1. Nastaviť
Začíname pohľadom na EventBus objekt. Môže registrovať poslucháčov a zverejňovať udalosti. Jeho použitie je také jednoduché ako vytvorenie inštancie triedy:
EventBus eventBus = nový EventBus ();
Knižnica Guava vám dáva slobodu používať EventBus spôsobom, ktorý najlepšie vyhovuje vašim vývojovým potrebám.
3.2. Vytváranie poslucháčov
Vytvárame triedu poslucháčov, ktorá má metódy obsluhy na príjem konkrétnych udalostí. Metódy obsluhy anotujeme pomocou @ Prihlásiť sa na odber. Metóda prijíma ako argument objekt rovnakého typu ako udalosť, ktorá sa odosiela:verejná trieda EventListener {private static int eventsHandled; @Subscribe public void stringEvent (reťazcová udalosť) {eventsHandled ++; }}
3.3. Registrácia poslucháčov
Registráciou našich sa môžeme prihlásiť na odber udalosti EventListener trieda na EventBus:Poslucháč EventListener = nový EventListener (); eventBus.register (poslucháč);
3.4. Ruší sa registrácia poslucháčov
Ak z nejakého dôvodu chceme zrušiť registráciu triedy z triedy EventBus, ktoré je tiež možné ľahko vykonať:
eventBus.unregister (poslucháč);
3.5. Zverejňovanie udalostí
Udalosti môžeme zverejňovať aj prostredníctvom EventBus:@Test public void givenStringEvent_whenEventHandled_thenSuccess () {eventBus.post ("reťazcová udalosť"); assertEquals (1, listener.getEventsHandled ()); }
3.6. Zverejňovanie vlastných udalostí
Môžeme tiež určiť vlastnú triedu udalosti a zverejniť túto udalosť. Začíname vytvorením vlastnej udalosti:public class CustomEvent {private String action; // štandardné getre / settery a konštruktory}
Pridanie metódy obsluhy do súboru EventListener trieda pre túto udalosť:
@Subscribe public void someCustomEvent (CustomEvent customEvent) {eventsHandled ++; }
Teraz môžeme zverejniť našu vlastnú udalosť:
@Test public void givenCustomEvent_whenEventHandled_thenSuccess () {CustomEvent customEvent = new CustomEvent ("Custom Event"); eventBus.post (customEvent); assertEquals (1, listener.getEventsHandled ()); }
3.7. Manipulácia s Odhlásené Udalosť
Poskytuje sa nám DeadEvent trieda, ktorá nám umožňuje zvládnuť všetky udalosti, ktoré nemajú poslucháčov. Môžeme pridať metódu na spracovanie súboru DeadEvent trieda:
@Subscribe public void handleDeadEvent (DeadEvent deadEvent) {eventsHandled ++; }
4. Záver
V tomto tutoriáli sme použili jednoduchý príklad ako príručku, ako používať Guavu EventBus.
Kompletný zdrojový kód a všetky útržky kódu pre tento článok nájdete na GitHub.