Wat is Android Looper?

Android Looper is een Java-klasse in de Android-gebruikersinterface die samen met de Handler-klasse UI-evenementen zoals knopklikken, schermopnames en oriëntatieswitches verwerkt. Ze kunnen ook worden gebruikt om inhoud naar een HTTP-service te uploaden, afbeeldingen te verkleinen en verzoeken op afstand uit te voeren. De belangrijkste vaardigheid van deze klassen is het kunnen implementeren van een gelijktijdigheidspatroon.

Doel

Android voorkomt dat programmeurs UI-componenten van de meeste threads bijwerken, behalve de hoofdthread. Met behulp van de Android Looper en de Android-handler kan een afzonderlijke thread worden gemaakt die de gebruikersinterface bijwerkt. Het proces bestaat uit het maken van een handler-klasse die is gekoppeld aan de primaire thread en vervolgens een uitvoerbare opdracht daaraan koppelt. Het commando wordt vervolgens later geïmplementeerd via de Looper.

Android Looper

De Android Looper-klasse bevat een MessageQueue en deze is alleen gekoppeld aan de thread waarvan deze is gemaakt. Merk op dat deze verbinding niet verbroken kan worden en dat de Looper niet aan een andere thread kan worden gekoppeld. Bovendien bevindt de Looper zich in lokale opslag en kan deze alleen vanaf een statische methode worden aangeroepen. Een voorbereidingsmethode controleert of een Looper al aan een thread is gekoppeld en vervolgens maakt de statische methode de Looper. Daarna kan een lus worden gebruikt om te controleren op berichten in de wachtrij.

Android-handler

De Android Handler-klasse neemt de leiding over het toevoegen, verwijderen en bijwerken van berichten binnen een bepaalde MessageQueue. Handlers zijn gekoppeld aan Loopers en de bijbehorende threads, maar er kunnen meerdere handlers aan een enkele thread worden gekoppeld. Wanneer methoden worden doorgegeven aan de handler, verschijnt er een nieuw bericht in de MessageQueue. Het doelveld van het bericht is geconfigureerd voor de Handler-instantie, dus wanneer de Looper het bericht verwerkt, leidt het het bericht direct terug naar de handler, zodat de gebeurtenis op de juiste thread kan worden verwerkt.

Extra informatie

Android Looper bevat 11 methoden, waaronder ongeldig, getMainLooper, getThread, loop, myLooper, myQueue, prepare, prepareMainLooper, quit, setMessageLogging en toString. Het voordeel van het gebruik van de Android Looper- en Android Handler-klassen is dat ze voorkomen dat ontwikkelaars toegang tot UI-componenten moeten blokkeren vanwege de zorg van gelijktijdige toegang, dat wil zeggen een gebruiker die op een knop klikt terwijl deze wordt bijgewerkt.

Aanbevolen