Sobes.tech
Middle

Wat is Looper in Android?

sobes.tech AI

Antwoord van AI

Looper is een object dat is ontworpen om een taak meerdere keren uit te voeren in één thread. Het creëert een gebeurtenislus die berichten uit de MessageQueue verwerkt.

Belangrijkste componenten:

  • MessageQueue: Taak- of berichtwachtrij.
  • Looper: Object dat berichten uit de MessageQueue haalt en deze naar de juiste Handler stuurt.
  • Handler: Object dat gekoppeld is aan een specifieke Thread en MessageQueue. Het wordt gebruikt om berichten naar de MessageQueue te sturen en te verwerken.

Werking:

  1. De thread die de Looper wil gebruiken, roept Looper.prepare() aan om een Looper en MessageQueue te maken.
  2. De thread roept Looper.loop() aan om de berichtverwerkingslus te starten. Deze functie blokkeert de thread totdat Looper.quit() wordt aangeroepen.
  3. Handler maakt berichten aan en stuurt ze naar de MessageQueue, gekoppeld aan deze Looper.
  4. De Looper haalt de berichten uit de MessageQueue in volgorde en geeft ze terug aan de Handler voor verwerking in de handleMessage()-methode.

Toepassingen:

  • De UI-thread in Android gebruikt Looper om gebeurtenissen zoals klikken en aanraken te verwerken zonder de UI te blokkeren.
  • Achtergrondthreads kunnen Looper gebruiken om herhalende taken uit te voeren of berichten te verwerken die door andere threads worden gestuurd.
// Voorbeeld van het maken en starten van een Looper in een achtergrondthread
class WorkerThread extends Thread {
    public Handler handler;

    public void run() {
        Looper.prepare(); // Maak een Looper en MessageQueue voor deze thread
        handler = new Handler(Looper.myLooper()) { // Maak een Handler
            @Override
            public void handleMessage(Message msg) {
                // Verwerk het bericht hier
            }
        };
        Looper.loop(); // Start de berichtverwerkingslus
    }
}