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:
- Lõim, mis soovib kasutada Looperit, kutsub välja
Looper.prepare(), et luua Looper ja MessageQueue. - Lõim kutsub välja
Looper.loop(), et alustada sõnumite töötlemise tsüklit. See funktsioon blokeerib lõime kuni kutsutakseLooper.quit(). - Handler loob ja saadab sõnumeid MessageQueue-sse, mis on seotud selle Looper-iga.
- 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
}
}