Evenementenhulpverlening: een overzicht

Evenementen hulpverlening

 

 

In een echte situatie moet een app waarschijnlijk veel gebeurtenissen tegelijk afhandelen. Bijvoorbeeld, wanneer een gebruiker inlogt op de app, moet hij zijn profiel en inlogscherm kunnen tonen. Om dit te doen, zullen we willen dat onze app zoveel mogelijk gebeurtenissen ontvangt wanneer relevante informatie beschikbaar is. Om meerdere gebeurtenissen op één plaats af te handelen en dienovereenkomstig te reageren, heeft het Android framework de Runtime geïntroduceerd voor het reageren op gebeurtenissen (of kortweg, event listeners). Een gewone Activiteit kan één of meer callback functies hebben voor het afhandelen van gebruikersinteracties. Deze functies worden listeners genoemd. Het toevoegen van een listener biedt extra methoden om te reageren op een gebeurtenis zodra deze zich voordoet. Evenementen hulpverlening is van essentieel belang bij het organiseren van een soepel verlopend evenement. Het gebruik van listeners maakt het gemakkelijker voor ontwikkelaars om transversale logica te implementeren die overal in de codebase wordt aangeroepen.

De event listener opzetten

Om een event listener in te stellen, moeten we een listener toevoegen in de onCreate methode van onze Activity subklasse. Deze methode wordt aangeroepen wanneer de Activiteit wordt aangemaakt. In ons voorbeeld zullen we de listener alleen instellen in onCreate, dus moeten we de bovenliggende methode overrulen. Om een luisteraar toe te voegen, moeten we een callback-functie registreren. De callback wordt geïdentificeerd door een "id", dus we moeten een "onClick" id gebruiken. Na registratie van de listener kunnen we gebeurtenissen afhandelen door de juiste methodes van de listener-functie aan te roepen.

De gebeurtenissen afhandelen

Onze callback-functie is nu klaar om gebeurtenissen af te handelen. Wanneer een gebeurtenis plaatsvindt, roept het framework onze listener-functie aan. Om te weten te komen welke gebeurtenis de callback triggerde, kunnen we het "event object" opvragen. Dit object bevat informatie over de gebeurtenis die de callback activeerde. In ons voorbeeld, wanneer de gebruiker op de aanmeldingsknop klikt, willen we het profielscherm tonen. Daartoe kunnen we controleren welke gebeurtenis de callback activeerde. Als de gebruiker op de aanmeldingsknop heeft geklikt, moet de callback reageren met een profielscherm. We kunnen het gebeurtenisobject van de "klik"-gebeurtenis en het "bron"-veld van de "klik"-gebeurtenis ophalen om het element te vinden dat de callback heeft geactiveerd. Op basis van de ID van het element kunnen we dan het "profiel"-veld openen om de profielinformatie van de gebruiker op te halen.

Reageren op de gebeurtenis

Nadat we weten welke gebeurtenis de callback heeft geactiveerd, kunnen we de gebeurtenis verwerken door de juiste methode van de callback-functie aan te roepen. Dat is het hele idee achter event-driven programmeren: We zijn niet gebonden aan één pad om de gebeurtenis te verwerken. In plaats daarvan kunnen we de gebeurtenis verwerken volgens onze behoeften, en als we klaar zijn, kunnen we het resultaat gewoon teruggeven aan het framework. In dit voorbeeld willen we het profielscherm tonen, dus kunnen we gewoon de profielinformatie teruggeven die we hebben opgehaald tijdens de afhandeling van de "klik"-gebeurtenis. Om het resultaat terug te geven, kunnen we gewoon de methode aanroepen door het resultaat door te geven.

Samenvatting

Door gebruik te maken van het event-driven programmeermodel, kun je transversale code schrijven die kan reageren op gebeurtenissen in elk deel van de codebase. Daarom kun je gemakkelijk complexe gebruikerservaringen bouwen door op een enkele plaats op verschillende gebeurtenissen te reageren. Er zijn een paar dingen waar je rekening mee moet houden als je event-driven programming wilt gebruiken in je apps. Ten eerste moet je ervoor zorgen dat je event listeners instelt in je app, zodat het framework ze kan activeren wanneer zich relevante gebeurtenissen voordoen. Ten tweede moet je een duidelijk begrip hebben van hoe je de gebeurtenissen verwerkt en de resultaten van de gebeurtenissen verkrijgt. En ten slotte moet je je codebase zo organiseren dat hij op meerdere events tegelijk kan reageren.