Junior
Androidda Handler nima?
sobes.tech AI
AIdan javob
Handler - bu Message va Runnable obyektlarini Handlerni yaratgan oqimdan boshqa oqimga (yoki o'ziga) yuborish va ishlash mexanizmi.
U kodni ma'lum bir oqimda bajarilishini rejalashtirishga imkon beradi, hatto siz boshqa oqimda bo'lsangiz ham. Handler Looper bilan bog'langan bo'lib, u oqimdagi xabarlar navbatini boshqaradi.
Asosiy komponentlar:
- Handler: Xabarlar va vazifalarni yuboradi va ularni bog'langan oqimda ishlaydi.
- Looper: Ma'lum bir oqim uchun xabarlar navbatini ishlash siklini boshlaydi. Har bir oqimda faqat bitta
Looperbo'lishi mumkin, lekin har bir oqimda default ravishda emas (masalan, asosiy oqimda bor). - MessageQueue:
Looperbilan bog'langan xabarlar navbati. - Message/Runnable:
Handlerorqali yuborilgan va bajariladigan obyektlar.
Qo'llanilishi:
- UI bo'lmagan oqimdan UI yangilash.
- Kechiktirilgan yoki ma'lum vaqtda vazifalarni rejalashtirish.
- Oqimlar o'rtasida xabar yuborish.
// Orqa fon oqimidan UI ni yangilash uchun Handler misoli
Handler mainHandler = new Handler(Looper.getMainLooper()); // Asosiy oqimning Handlerini olamiz
new Thread(() -> {
// Orqa fonda uzun davom etadigan operatsiyani bajarish
String result = doBackgroundWork();
// Natijani asosiy oqimga yuborish va UI ni yangilash
mainHandler.post(() -> {
// Bu kod asosiy oqimda bajariladi
updateTextView(result);
});
}).start();
private String doBackgroundWork() {
// Uzun ishni simulyatsiya qilish
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Orqa fon ishining natijasi";
}
private void updateTextView(String text) {
// UI elementini yangilash
// someTextView.setText(text);
}