Middle
Čo je to Looper v Androidu?
sobes.tech AI
Odpoveď od AI
Looper je trieda v Androide, ki se uporablja za delo z vrstico sporočil (MessageQueue) v nitih. Povezuje nit z vrstico sporočil, kar ji omogoča prejemanje in obdelavo sporočil iz te vrstice.
Načelo delovanja:
- Ustvarjanje Looperja: V nit, ki mora imeti vrstico sporočil, se pokliče
Looper.prepare(). - Zagon zanke: Pokliče se
Looper.loop(). Ta klic blokira nit, doklerLooperni ustavljen. Znotraj zankeLooperneprekinjeno izvleče sporočila izMessageQueuein jih pošlje ciljnemuHandler-ju. - Ustavitev Looperja: Za zaključek dela se pokliče
Looper.quit()aliLooper.quitSafely().
Handler se uporablja za pošiljanje sporočil v MessageQueue Looper-ja in njihovo obdelavo v povezani niti. Primer uporabe:
// V niti, kjer mora biti Looper
new Thread(() -> {
Looper.prepare(); // 1. Ustvari se Looper in MessageQueue za to nit.
Handler handler = new Handler(Looper.myLooper()) { // 2. Ustvari se Handler, povezan z Looper-jem te niti.
@Override
public void handleMessage(Message msg) {
// Obdelava sporočila v tej niti
}
};
Looper.loop(); // 3. Zažene se zanka Looper za obdelavo sporočil.
}).start();
// V drugi niti, pošiljanje sporočila
handler.sendMessage(/* vaše sporočilo */);
Looper je potreben, da niti lahko obdelujejo asinhrone naloge in komunicirajo med seboj, še posebej pri delu z UI nitjo (ki po privzetku ima Looper).