Sobes.tech
Middle

Android-də Looper nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Looper, tək bir iş parçasında bir vəzifəni çoxsaylı dəfə yerinə yetirmək üçün nəzərdə tutulmuş obyektidir. O, hadisələr dövrü yaradır və mesajlar növbəsindən (MessageQueue) mesajları emal edir.

Əsas komponentlər:

  • MessageQueue: Tapşırıq və ya mesajların növbəsi.
  • Looper: MessageQueue-dan mesajları çıxaran və onları müvafiq Handler-ə göndərən obyekt.
  • Handler: Müəyyən bir Thread və MessageQueue ilə əlaqəli obyekt. O, MessageQueue-ya mesaj göndərmək və onları emal etmək üçün istifadə olunur.

İş prinsipi:

  1. Looper-dən istifadə etmək istəyən thread Looper.prepare() çağırır və Looper və MessageQueue yaradır.
  2. Thread Looper.loop() çağırır və mesajların emalı dövrünü başlatır. Bu funksiya Looper.quit() çağırılana qədər thread-i bloklayır.
  3. Handler bu Looper ilə əlaqəli MessageQueue-ya mesajlar yaradır və göndərir.
  4. Looper MessageQueue-dan mesajları ardıcıllıqla çıxarır və onları handleMessage() metodunda emal etmək üçün Handler-ə geri göndərir.

Tətbiqlər:

  • Android-də UI Thread (İstifadəçi İnterfeysi Thread) Looper-dən istifadə edir, bu, kliklər və toxunuşlar kimi hadisələri UI-ni bloklamadan emal etmək üçün.
  • Arxa plan thread-lər Looper-dən istifadə edə bilər, bu, təkrarlanan tapşırıqları yerinə yetirmək və ya digər thread-lərdən göndərilən mesajları emal etmək üçün.
// Arxa plan thread-də Looper yaratmaq və başlatmaq nümunəsi
class WorkerThread extends Thread {
    public Handler handler;

    public void run() {
        Looper.prepare(); // Bu thread üçün Looper və MessageQueue yaradırıq
        handler = new Handler(Looper.myLooper()) { // Handler yaradırıq
            @Override
            public void handleMessage(Message msg) {
                // Mesajı burada emal et
            }
        };
        Looper.loop(); // Mesajların emalı dövrünü başlat
    }
}