Middle
Kas ir Looper Android?
sobes.tech AI
Atbilde no AI
Looper ir objekts, kas paredzēts atkārtotai uzdevumu izpildei vienā pavedienā. Tas izveido notikumu ciklu, kas apstrādā ziņojumus no ziņojumu rindas (MessageQueue).
Galvenās sastāvdaļas:
- MessageQueue: uzdevumu vai ziņojumu rinda.
- Looper: objekts, kas izvelk ziņojumus no MessageQueue un nosūta tos atbilstošam Handler.
- Handler: objekts, kas ir saistīts ar noteiktu pavedienu un MessageQueue. To izmanto ziņojumu sūtīšanai uz MessageQueue un to apstrādei.
Darba princips:
- Pavediens, kas vēlas izmantot Looper, izsauc
Looper.prepare(), lai izveidotu Looper un MessageQueue. - Pavediens izsauc
Looper.loop(), lai sāktu ziņojumu apstrādes ciklu. Šī funkcija bloķē pavedienu līdz tiek izsauktsLooper.quit(). - Handler izveido un sūta ziņojumus MessageQueue, kas saistīti ar šo Looper.
- Looper izvelk ziņojumus no MessageQueue secībā un nodod tos atpakaļ Handler
am apstrādeihandleMessage()` metodē.
Pielietojums:
- Android lietotāja saskarnes pavedieni (UI Thread) izmanto Looper, lai apstrādātu notikumus, piemēram, klikšķus un pieskārienus, bez UI bloķēšanas.
- Fona pavedieni var izmantot Looper, lai veiktu atkārtotas uzdevumus vai apstrādātu ziņojumus, kas nosūtīti no citiem pavedieniem.
// Piemērs, kā izveidot un palaist Looper fonā
class WorkerThread extends Thread {
public Handler handler;
public void run() {
Looper.prepare(); // Izveido Looper un MessageQueue šim pavedienam
handler = new Handler(Looper.myLooper()) { // Izveido Handler
@Override
public void handleMessage(Message msg) {
// Apstrāde šeit
}
};
Looper.loop(); // Sāk ziņojumu ciklu
}
}