Sobes.tech
Middle

Wat is Looper in Android?

sobes.tech AI

Antwoord van AI

Looper is een klasse in Android die wordt gebruikt om te werken met de berichtwachtrij (MessageQueue) in threads. Het verbindt een thread met de berichtwachtrij, waardoor het berichten kan ontvangen en verwerken uit deze wachtrij.

Werking principe:

  1. Aanmaken van Looper: In de thread die een berichtwachtrij moet hebben, wordt Looper.prepare() aangeroepen.
  2. Start van de lus: Looper.loop() wordt aangeroepen. Deze oproep blokkeert de thread totdat de Looper wordt gestopt. Binnen de lus haalt de Looper continu berichten uit de MessageQueue en stuurt ze naar de doel-Handler.
  3. Stoppen van de Looper: Om het werk te beëindigen, wordt Looper.quit() of Looper.quitSafely() aangeroepen.

Handler wordt gebruikt om berichten naar de MessageQueue van de Looper te sturen en deze te verwerken in de gekoppelde thread. Voorbeeld van gebruik:

// In de thread waar de Looper moet zijn
new Thread(() -> {
    Looper.prepare(); // 1. Maakt een Looper en MessageQueue voor deze thread.
    Handler handler = new Handler(Looper.myLooper()) { // 2. Maakt een Handler gekoppeld aan de Looper van deze thread.
        @Override
        public void handleMessage(Message msg) {
            // Verwerking van het bericht in deze thread
        }
    };
    Looper.loop(); // 3. Start de Looper-lus voor het verwerken van berichten.
}).start();

// In een andere thread, bericht sturen
handler.sendMessage(/* je bericht */);

Looper is nodig zodat threads asynchrone taken kunnen verwerken en met elkaar kunnen communiceren, vooral bij het werken met de UI-thread (die standaard een Looper heeft).