Middle
Android'de Looper nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Looper Android'de, mesaj kuyruğu (MessageQueue) ile çalışan bir sınıftır. Bir thread ile mesaj kuyruğunu bağlar ve bu kuyruğa gelen mesajları alıp işler.
Çalışma prensibi:
- Looper Oluşumu: Mesaj kuyruğu olması gereken thread'de
Looper.prepare()çağrılır. - Döngünün başlatılması:
Looper.loop()çağrılır. Bu çağrı,Looperdurdurulana kadar thread'i engeller. Döngü içinde,Loopersürekli olarakMessageQueue'ndan mesajlar alır ve hedefHandler'a gönderir. - Looper'un durdurulması: İşlem sona erdirilmek istendiğinde,
Looper.quit()veyaLooper.quitSafely()çağrılır.
Handler, Looper'ın mesaj kuyruğuna mesaj göndermek ve bunları bu Looper ile ilişkili thread'de işlemek için kullanılır. Kullanım örneği:
// Looper'ın olması gereken thread'de
new Thread(() -> {
Looper.prepare(); // 1. Bu thread için bir Looper ve MessageQueue oluşturulur.
Handler handler = new Handler(Looper.myLooper()) { // 2. Bu thread'in Looper'ına bağlı bir Handler oluşturulur.
@Override
public void handleMessage(Message msg) {
// Bu thread'de mesaj işleme
}
};
Looper.loop(); // 3. Mesajları işlemek için Looper döngüsü başlatılır.
}).start();
// Başka bir thread'de mesaj gönderme
handler.sendMessage(/* mesajınız */);
Looper, thread'lerin asenkron görevleri işlemesi ve thread'ler arası etkileşim kurması için gereklidir, özellikle UI thread ile çalışırken (varsayılan olarak Looper'a sahiptir).