Middle
Ce este Looper în Android?
sobes.tech AI
Răspuns de la AI
Looper este o clasă în Android utilizată pentru a lucra cu coada de mesaje (MessageQueue) în fire de execuție. Leagă un fir de execuție de coada de mesaje, permițându-i să primească și să proceseze mesaje din această coadă.
Principiul de funcționare:
- Crearea unui Looper: În firul de execuție care trebuie să aibă o coadă de mesaje, se apelează
Looper.prepare(). - Pornirea ciclului: Se apelează
Looper.loop(). Această apelare blochează firul de execuție până cândLoopereste oprit. În interiorul ciclului,Looperextrage continuu mesaje dinMessageQueueși le trimite cătreHandlerțintă. - Oprirea Looper-ului: Pentru a termina lucrul, se apelează
Looper.quit()sauLooper.quitSafely().
Handler este folosit pentru a trimite mesaje în MessageQueue a Looper-ului și pentru a le procesa în firul asociat cu acest Looper. Exemplu de utilizare:
// În firul în care trebuie să fie Looper
new Thread(() -> {
Looper.prepare(); // 1. Se creează un Looper și o MessageQueue pentru acest fir.
Handler handler = new Handler(Looper.myLooper()) { // 2. Se creează un Handler legat de Looper-ul acestui fir.
@Override
public void handleMessage(Message msg) {
// Procesarea mesajului în acest fir
}
};
Looper.loop(); // 3. Se pornește ciclul Looper pentru procesarea mesajelor.
}).start();
// În alt fir, trimiterea unui mesaj
handler.sendMessage(/* mesajul tău */);
Looper este necesar pentru ca firele de execuție să poată procesa sarcini asincrone și să interacționeze între ele, mai ales când se lucrează cu firul UI (care are implicit un Looper).