Sobes.tech
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:

  1. Pavediens, kas vēlas izmantot Looper, izsauc Looper.prepare(), lai izveidotu Looper un MessageQueue.
  2. Pavediens izsauc Looper.loop(), lai sāktu ziņojumu apstrādes ciklu. Šī funkcija bloķē pavedienu līdz tiek izsaukts Looper.quit().
  3. Handler izveido un sūta ziņojumus MessageQueue, kas saistīti ar šo Looper.
  4. Looper izvelk ziņojumus no MessageQueue secībā un nodod tos atpakaļ Handleram apstrādei handleMessage()` 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
    }
}