Junior
Čo je Handler v Android?
sobes.tech AI
Odpoveď od AI
Handler je mechanizmus na odosielanie a spracovanie objektov Message a Runnable z vlákna, ktoré vytvára Handler, do iného vlákna (alebo toho istého).
Umožňuje plánovať vykonanie kódu v určitom vlákne, aj keď ste v inom vlákne. Handler je spojený s Looper, ktorý spracováva frontu správ vo vlákne.
Hlavné komponenty:
- Handler: Odosiela správy a úlohy, a ich spracováva v spojenom vlákne.
- Looper: Spúšťa cyklus spracovania fronty správ pre určité vlákno. Každé vlákno môže mať iba jeden
Looper, ale nie všetky vlákna ho majú predvolene (napríklad hlavné vlákno ho má). - MessageQueue: Fronta správ spojená s
Looper. - Message/Runnable: Objekt, ktorý sa odosiela cez
Handlerna vykonanie.
Použitie:
- Aktualizácia UI z ne-UI vlákna.
- Plánovanie úloh so zdržaním alebo v určitom čase.
- Odosielanie správ medzi vláknami.
// Príklad použitia Handlera na aktualizáciu UI z pozadia vlákna
Handler mainHandler = new Handler(Looper.getMainLooper()); // Získanie Handlera hlavného vlákna
new Thread(() -> {
// Vykonanie dlhodobej operácie na pozadí
String result = doBackgroundWork();
// Odoslanie výsledku do hlavného vlákna na aktualizáciu UI
mainHandler.post(() -> {
// Tento kód bude vykonaný v hlavnom vlákne
updateTextView(result);
});
}).start();
private String doBackgroundWork() {
// Simulácia dlhého práce
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Výsledok práce na pozadí";
}
private void updateTextView(String text) {
// Aktualizácia UI prvku
// someTextView.setText(text);
}