Sobes.tech
Middle

Android-də Looper nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Looper Android-də, mesaj növbəsi (MessageQueue) ilə işləmək üçün istifadə olunan sinifdir. O, bir ipi mesaj növbəsinə bağlayır və ona bu növbədən mesajlar almağa və işləməyə imkan verir.

İş prinsipi:

  1. Looper yaradılması: Mesaj növbəsi olması lazım olan ipdə Looper.prepare() çağırılır.
  2. Döngünün başlaması: Looper.loop() çağırılır. Bu çağırış Looper dayandırılana qədər ipi bloklayır. Döngü daxilində, Looper davamlı olaraq MessageQueue-dən mesajlar çıxarır və onları hədəf Handler-a göndərir.
  3. Looper-un dayandırılması: İşi bitirmək üçün, Looper.quit() və ya Looper.quitSafely() çağırılır.

Handler, Looper-ın MessageQueue-suna mesaj göndərmək və onları əlaqəli ipdə işləmək üçün istifadə olunur. İstifadə nümunəsi:

// Looper-in olması lazım olan ipdə
new Thread(() -> {
    Looper.prepare(); // 1. Bu ip üçün Looper və MessageQueue yaradılır.
    Handler handler = new Handler(Looper.myLooper()) { // 2. Bu ipin Looper-ına bağlı Handler yaradılır.
        @Override
        public void handleMessage(Message msg) {
            // Bu ipdə mesajın işlənməsi
        }
    };
    Looper.loop(); // 3. Mesajların işlənməsi üçün Looper döngüsü başlanır.
}).start();

// Digər ipdə, mesaj göndərmək
handler.sendMessage(/* mesajınız */);

Looper-ın olması, iplərin asinxron tapşırıqları işləməsi və bir-biri ilə əlaqə qurması üçün vacibdir, xüsusən UI ipi ilə işləyərkən (standart olaraq Looper-a malikdir).