Sobes.tech
Junior

Androidda asosiy oqim qanday ishlaydi?

sobes.tech AI

AIdan javob

Androidda Asosiy oqim (Main Thread) yoki UI oqimi foydalanuvchi interfeysini chizish, kirish voqealarini qayta ishlash va dasturning ko'p komponentlarini (Activity, Service, Broadcast Receiver) bajarish uchun javobgardir.

Uning ishlash prinsipi Looper va Handler mexanizmlariga asoslangan.

  1. Looper: Bu, xabarlar (Message) ni xabarlar navbatidan (MessageQueue) siklik tarzda chiqarib, ularni tegishli Handlerga yuboradigan sinf.
  2. MessageQueue: Bu, qayta ishlash uchun xabarlar ro'yxatini saqlovchi ma'lumotlar tuzilmasi. Xabarlar ma'lumotlar (obyektlar, primitivalar) va ularni qayta ishlash uchun Handlerga havolani o'z ichiga olishi mumkin.
  3. Handler: Bu, oqimning Looper va MessageQueue bilan bog'langan sinf. U xabarlarni MessageQueuega yuborish va Looper tomonidan chiqarilgan xabarlarni qayta ishlash imkonini beradi. Handler, xabarlarni o'zining oqimiga (masalan, vazifalarni rejalashtirish uchun) yoki Looper bilan boshqa oqimlarga yuborishi mumkin.

Ishlash prinsipi:

  1. Asosiy oqimning Looperi ishga tushadi va loop() tsiklining davomiy ravishda ishlashini ta'minlaydi.
  2. Tizim yoki boshqa oqimlar Handlerlar orqali asosiy oqimning MessageQueue ga xabarlar (masalan, teginish voqealari, Activity ning hayot aylanishi haqida xabarlar) yuboradi.
  3. Looper, MessageQueue dan keyingi xabarni chiqaradi.
  4. Looper, xabarni unga bog'langan Handlerga yuboradi.
  5. Handler, xabarni qayta ishlaydi va mos keladigan logikani bajaradi (masalan, UI ni yangilash).

Muhim: UI ni yangilash bilan bog'liq barcha operatsiyalar faqat asosiy oqimda bajarilishi kerak. Uzun davom etadigan operatsiyalar (tarmoq so'rovlar, fayllar bilan ishlash) asosiy oqimda bajarilsa, u bloklanadi (ANR - Application Not Responding) va dastur to'xtaydi. Bunday operatsiyalar uchun ish oqimlaridan foydalanish tavsiya etiladi (masalan, Coroutines, RxJava, ExecutorService, AsyncTask yordamida).