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
Looperolabilir, ancak varsayılan olarak her akışta yoktur (örneğin, ana akışta vardır). - MessageQueue:
Looperile ilişkili mesaj kuyruğu. - Message/Runnable:
Handleraracı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);
}