Sobes.tech
Middle

Mis on Looper Androidis?

sobes.tech AI

Vastus AI-lt

Looper on objekt, mis on mõeldud korduvaks ülesande täitmiseks ühes lõimes. See loob sündmuste tsükli, mis töötleb sõnumeid MessageQueue-st.

Peamised komponendid:

  • MessageQueue: ülesannete või sõnumite järjesta.
  • Looper: objekt, mis tõmbab sõnumeid MessageQueue-st ja saadab need vastavale Handler-ile.
  • Handler: objekt, mis on seotud kindla lõime ja MessageQueue-ga. Seda kasutatakse sõnumite saatmiseks MessageQueue-sse ja nende töötlemiseks.

Tööpõhimõte:

  1. Lõim, mis soovib kasutada Looperit, kutsub välja Looper.prepare(), et luua Looper ja MessageQueue.
  2. Lõim kutsub välja Looper.loop(), et alustada sõnumite töötlemise tsüklit. See funktsioon blokeerib lõime kuni kutsutakse Looper.quit().
  3. Handler loob ja saadab sõnumeid MessageQueue-sse, mis on seotud selle Looper-iga.
  4. Looper tõmbab sõnumeid MessageQueue-st järjekorras ja edastab need tagasi Handler-ile handleMessage() meetodis.

Rakendamine:

  • Androidi kasutajaliidese lõimed (UI Thread) kasutavad Looperit sündmuste, nagu klõpsud ja puudutused, töötlemiseks ilma UI blokeerimata.
  • Taustalõimed võivad kasutada Looperit korduvate ülesannete või sõnumite täitmiseks, mis on saadetud teistest lõimedest.
// Näide Looperi loomise ja käivitamise kohta taustalõimes
class WorkerThread extends Thread {
    public Handler handler;

    public void run() {
        Looper.prepare(); // Loob Looperi ja MessageQueue selle lõime jaoks
        handler = new Handler(Looper.myLooper()) { // Loob Handler-i
            @Override
            public void handleMessage(Message msg) {
                // Töötlemine siin
            }
        };
        Looper.loop(); // Käivitab sõnumitsükli
    }
}