Junior
Android-də Handler nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Handler, Message və Runnable obyektlərini Handler-i yaradan axın (thread) ilə başqa bir axına (və ya eyni axına) göndərmək və işləmək üçün mexanizmdir.
O, kodun müəyyən bir axında icrasını planlaşdırmağa imkan verir, hətta siz başqa bir axındasınızsa belə. Handler, mesajların növbəsini idarə edən Looper ilə əlaqəlidir.
Əsas komponentlər:
- Handler: Mesajlar və tapşırıqları göndərir və onları əlaqəli axında işləyir.
- Looper: Müəyyən bir axın üçün mesajların növbəsini işləmə dövrünü başlatır. Hər bir axın yalnız bir
Looper-ə sahib ola bilər, lakin hər axın standart olaraq onu ehtiva etmir (məsələn, əsas axın var). - MessageQueue:
Looperilə əlaqəli mesajların növbəsi. - Message/Runnable:
Handlervasitəsilə göndərilən və yerinə yetirilən obyektlər.
Tətbiqlər:
- UI olmayan axından UI yeniləməsi.
- Gecikmə ilə və ya müəyyən vaxtda tapşırıqların planlaşdırılması.
- Axınlar arasında mesaj göndərilməsi.
// Arxa planda işləyən axından UI-ni yeniləmək üçün Handler nümunəsi
Handler mainHandler = new Handler(Looper.getMainLooper()); // Əsas axının Handler-i alınır
new Thread(() -> {
// Arxa planda uzun müddətli əməliyyat yerinə yetirin
String result = doBackgroundWork();
// Nəticəni əsas axına göndərərək UI-ni yeniləyin
mainHandler.post(() -> {
// Bu kod əsas axında icra olunacaq
updateTextView(result);
});
}).start();
private String doBackgroundWork() {
// Uzun işin simulyasiyası
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Arxa plan işi nəticəsi";
}
private void updateTextView(String text) {
// UI elementini yeniləyin
// someTextView.setText(text);
}