Junior
Androidda Handler nima?
sobes.tech AI
AIdan javob
Android'da Handler — bu oqimlar o'rtasida o'zaro ta'sir qilish uchun mexanizmdir. U Message va Runnable ni bir oqimdan boshqasining MessageQueue (Xabarlar navbati) ga yuborish va uni ishlash imkonini beradi.
Asosiy komponentlar:
- Handler: Maxsus oqim va uning MessageQueue bilan bog'langan obyekt. Xabarlar va Runnable ni navbatga yuboradi va ularni chiqarib, ishlov beradi.
- Looper: Oqimga bog'langan obyekt. U oqimni "ishga tushiradi" va doimiy ravishda MessageQueue dan vazifalarni (Message yoki Runnable) chiqarib, ularni mos Handler ga yuboradi.
- MessageQueue: Looper tomonidan ishlov beriladigan vazifalar (Message yoki Runnable) navbati.
Qanday ishlaydi:
- Handler, xabarlarni ishlov beradigan oqimda (masalan, UI oqimida) yaratiladi.
- Bu Handler, o'sha oqimning Looper va MessageQueue bilan bog'langan.
- Boshqa oqimdan (masalan, fon oqimidan) xabarlar yoki Runnable lar Handler metodlari orqali MessageQueue ga yuborilishi mumkin (
postyokisendMessage). - Qabul qiluvchi oqimning Looper, MessageQueue dan vazifalarni chiqaradi.
- Looper, har bir vazifani mos Handler ga yuboradi va uni ishlov beradi.
Foydalanish misoli fon oqimidan UI ni yangilash uchun:
// UI oqimida Handler yaratish
Handler uiHandler = new Handler(Looper.getMainLooper());
// Fon oqimida:
new Thread(new Runnable() {
@Override
public void run() {
// Uzun davom etadigan operatsiyani bajarish...
// Handler orqali UI ni yangilash
uiHandler.post(new Runnable() {
@Override
public void run() {
// Bu yerda UI ni xavfsiz yangilash kodi
textView.setText("Operatsiya bajarildi!");
}
});
}
}).start();
Handler, ma'lum bir oqimda (ko'pincha UI) xavfsiz operatsiyalarni bajarish uchun ishlatiladi va asosiy oqimni bloklamaydi. Bu, UI bilan bog'liq operatsiyalar faqat asosiy oqimda bajarilishi kerakligi uchun muhimdir.