Sobes.tech
Middle

Kas ir Looper Android?

sobes.tech AI

Atbilde no AI

Looper irklase Android, kas tiek irstrādā ar ziņojumu rindu (MessageQueue) šūnās. Tas sasaista šūni ar ziņojumu rindu, ļaujot tai saņemt un apstrādāt no šīs rindas ienākošos ziņojumus.

Darbības princips:

  1. Looper izveide: Šūnā, kam jābūt ziņojumu rindai, tiek izsaukts Looper.prepare().
  2. Cikla uzsākšana: Tiek izsaukts Looper.loop(). Šis izsaukums bloķē šūni, kamēr Looper netiks apturēts. Cikla laikā Looper nepārtraukti izvelk ziņojumus no MessageQueue un nosūta tos mērķa Handler.
  3. Looper apturēšana: Darba beigšanai tiek izsaukts Looper.quit() vai Looper.quitSafely().

Handler tiek izmantots, lai sūtītu ziņojumus MessageQueue Looper un apstrādātu tos saistītajā šūnī. Piemērs:

// Šūnā, kurai jābūt `Looper`
new Thread(() -> {
    Looper.prepare(); // 1. Tiek izveidots `Looper` un `MessageQueue` šai šūnai.
    Handler handler = new Handler(Looper.myLooper()) { // 2. Tiek izveidots `Handler`, kas ir saistīts ar šīs šūnas `Looper`.
        @Override
        public void handleMessage(Message msg) {
            // Ziņojuma apstrāde šajā šūnī
        }
    };
    Looper.loop(); // 3. Sākas `Looper` cikls ziņojumu apstrādei.
}).start();

// Citā šūnā, ziņojuma sūtīšana
handler.sendMessage(/* jūsu ziņojums */);

Looper ir nepieciešams, lai šūnas varētu apstrādāt asenhroniskas uzdevumus un savstarpēji komunicēt, īpaši, strādājot ar UI šūnu (kas pēc noklusējuma ir ar Looper).