Sobes.tech
Middle

Kas yra Looper Android?

sobes.tech AI

Atsakymas iš AI

Looper yra klasė Android, naudojama dirbant su žinučių eilute (MessageQueue) nitose. Ji sujungia nitą su žinučių eile, leidžiančia jai gauti ir apdoroti iš jos gaunamas žinutes.

Veikimo principas:

  1. Looper sukūrimas: Nito, kuriai turi būti žinučių eilė, kviečiama Looper.prepare().
  2. Ciklo paleidimas: Kviečiama Looper.loop(). Šis kvietimas blokuoja nitą, kol Looper nebus sustabdytas. Cikle Looper nuolat ištraukia žinutes iš MessageQueue ir siunčia jas tiksliniam Handler.
  3. Looper sustabdymas: Norint baigti darbą, kviečiama Looper.quit() arba Looper.quitSafely().

Handler naudojamas siųsti žinutes į MessageQueue Looper ir jas apdoroti susietame nite. Pavyzdys:

// Nite, kuriai turi būti `Looper`
new Thread(() -> {
    Looper.prepare(); // 1. Sukuriamas `Looper` ir `MessageQueue` šiai nitei.
    Handler handler = new Handler(Looper.myLooper()) { // 2. Sukuriamas `Handler`, susietas su šios nitos `Looper`.
        @Override
        public void handleMessage(Message msg) {
            // Žinutės apdorojimas šioje nitoje
        }
    };
    Looper.loop(); // 3. Pradedamas `Looper` ciklas žinučių apdorojimui.
}).start();

// Kitoje nitoje, žinutės siuntimas
handler.sendMessage(/* jūsų žinutė */);

Looper yra būtinas, kad nitai galėtų apdoroti asinchroninius užduotis ir tarpusavyje bendrauti, ypač dirbant su UI nitimi (kuri pagal numatytuosius nustatymus turi Looper).