Sobes.tech
Middle

Was ist Looper in Android?

sobes.tech KI

Antwort von AI

Looper ist eine Klasse in Android, die verwendet wird, um mit der Nachrichtenwarteschlange (MessageQueue) in Threads zu arbeiten. Sie verbindet einen Thread mit der Nachrichtenwarteschlange, sodass dieser Nachrichten empfangen und verarbeiten kann.

Funktionsprinzip:

  1. Erstellen des Loopers: Im Thread, der eine Nachrichtenwarteschlange haben soll, wird Looper.prepare() aufgerufen.
  2. Starten der Schleife: Es wird Looper.loop() aufgerufen. Dieser Aufruf blockiert den Thread, bis der Looper gestoppt wird. Innerhalb der Schleife extrahiert der Looper kontinuierlich Nachrichten aus der MessageQueue und sendet sie an den Ziel-Handler.
  3. Stoppen des Loopers: Um die Arbeit zu beenden, werden Looper.quit() oder Looper.quitSafely() aufgerufen.

Handler wird verwendet, um Nachrichten an die MessageQueue des Loopers zu senden und sie im verbundenen Thread zu verarbeiten. Beispiel:

// Im Thread, in dem der Looper laufen soll
new Thread(() -> {
    Looper.prepare(); // 1. Erstellen eines Loopers und einer MessageQueue für diesen Thread.
    Handler handler = new Handler(Looper.myLooper()) { // 2. Erstellen eines Handlers, der mit dem Looper dieses Threads verbunden ist.
        @Override
        public void handleMessage(Message msg) {
            // Verarbeitung der Nachricht in diesem Thread
        }
    };
    Looper.loop(); // 3. Starten der Looper-Schleife zur Nachrichtenverarbeitung.
}).start();

// In einem anderen Thread, Nachricht senden
handler.sendMessage(/* deine Nachricht */);

Looper ist notwendig, damit Threads asynchrone Aufgaben verarbeiten und zwischen Threads interagieren können, insbesondere bei der Arbeit mit dem UI-Thread (der standardmäßig einen Looper hat).