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:
- Looper sukūrimas: Nito, kuriai turi būti žinučių eilė, kviečiama
Looper.prepare(). - Ciklo paleidimas: Kviečiama
Looper.loop(). Šis kvietimas blokuoja nitą, kolLoopernebus sustabdytas. CikleLoopernuolat ištraukia žinutes išMessageQueueir siunčia jas tiksliniamHandler. Loopersustabdymas: Norint baigti darbą, kviečiamaLooper.quit()arbaLooper.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).