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:
- Erstellen des Loopers: Im Thread, der eine Nachrichtenwarteschlange haben soll, wird
Looper.prepare()aufgerufen. - Starten der Schleife: Es wird
Looper.loop()aufgerufen. Dieser Aufruf blockiert den Thread, bis derLoopergestoppt wird. Innerhalb der Schleife extrahiert derLooperkontinuierlich Nachrichten aus derMessageQueueund sendet sie an den Ziel-Handler. - Stoppen des Loopers: Um die Arbeit zu beenden, werden
Looper.quit()oderLooper.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).