Sobes.tech
Junior

Android'de Handler nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Handler, Message ve Runnable nesnelerini oluşturan akıştan başka bir akışa (veya aynı akışa) göndermek ve işlemek için bir mekanizmadır.

Belirli bir akışta kod yürütmeyi planlamaya izin verir, hatta başka bir akıttayken bile. Handler, mesaj kuyruğunu işleyen Looper ile ilişkilidir.

Ana bileşenler:

  • Handler: Mesajlar ve görevleri gönderir ve bunları ilişkili akışta işler.
  • Looper: Belirli bir akış için mesaj kuyruğu döngüsünü başlatır. Her akışın yalnızca bir Looper olabilir, ancak varsayılan olarak her akışta yoktur (örneğin, ana akışta vardır).
  • MessageQueue: Looper ile ilişkili mesaj kuyruğu.
  • Message/Runnable: Handler aracılığıyla gönderilen ve yürütülen nesneler.

Uygulamalar:

  • UI olmayan akıştan UI güncellemesi.
  • Gecikmeli veya belirli bir zamanda görev planlama.
  • Akışlar arasında mesaj gönderimi.
// Arka planda çalışan bir akıştan UI'yi güncellemek için Handler kullanımı örneği
Handler mainHandler = new Handler(Looper.getMainLooper()); // Ana akışın Handler'ını al

new Thread(() -> {
    // Arka planda uzun süren bir işlem yap
    String result = doBackgroundWork();

    // Sonucu ana akışa göndererek UI'yi güncelle
    mainHandler.post(() -> {
        // Bu kod ana akışta çalışacaktır
        updateTextView(result);
    });
}).start();

private String doBackgroundWork() {
    // Uzun süren işlemin simülasyonu
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    return "Arka planda çalışan sonuç";
}

private void updateTextView(String text) {
    // UI öğesini güncelle
    // someTextView.setText(text);
}