Sobes.tech
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 Looper bo'lishi mumkin, lekin har bir oqimda default ravishda emas (masalan, asosiy oqimda bor).
  • MessageQueue: Looper bilan bog'langan xabarlar navbati.
  • Message/Runnable: Handler orqali 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);
}