Middle
Co je to Looper v Androidu?
sobes.tech AI
Odpověď od AI
Looper je třída v Androidu, která se používá pro práci s frontou zpráv (MessageQueue) ve vláknech. Spojuje vlákno s frontou zpráv, umožňující mu přijímat a zpracovávat zprávy z této fronty.
Princip fungování:
- Vytvoření Looperu: Ve vlákně, které má mít frontu zpráv, se volá
Looper.prepare(). - Spuštění smyčky: Volá se
Looper.loop(). Tento volání blokuje vlákno, dokud neníLooperzastaven. Uvnitř smyčkyLoopernepřetržitě extrahuje zprávy zMessageQueuea posílá je cílovémuHandler. - Zastavení Looperu: Pro ukončení práce se volá
Looper.quit()neboLooper.quitSafely().
Handler se používá k odesílání zpráv do MessageQueue Looperu a jejich zpracování ve spojovaném vlákně. Příklad použití:
// Ve vlákně, kde má být Looper
new Thread(() -> {
Looper.prepare(); // 1. Vytvoření Looperu a MessageQueue pro toto vlákno.
Handler handler = new Handler(Looper.myLooper()) { // 2. Vytvoření Handleru spojeného s Looperem tohoto vlákna.
@Override
public void handleMessage(Message msg) {
// Zpracování zprávy v tomto vlákně
}
};
Looper.loop(); // 3. Spuštění smyčky Looperu pro zpracování zpráv.
}).start();
// V jiném vlákně, odeslání zprávy
handler.sendMessage(/* vaše zpráva */);
Looper je nezbytný pro to, aby vlákna mohla zpracovávat asynchronní úkoly a komunikovat mezi sebou, zejména při práci s UI vláknem (které má implicitně Looper).