Junior
Šta je Handler u Androidu?
sobes.tech АИ
Одговор од АИ
Handler je mehanizam za slanje i obradu objekata Message i Runnable iz niti koja kreira Handler u drugu nit (ili istu).
Omogućava planiranje izvršavanja koda u određenoj niti, čak i ako ste u drugoj niti. Handler je povezan sa Looper, koji obrađuje red poruka u niti.
Glavne komponente:
- Handler: Šalje poruke i zadatke, i obrađuje ih u povezanoj niti.
- Looper: Pokreće ciklus obrade reda poruka za određenu nit. Svaka nit može imati samo jedan
Looper, ali ne i sve niti ga imaju po defaultu (npr., glavna nit ga ima). - MessageQueue: Red poruka povezan sa
Looper. - Message/Runnable: Objekti koji se šalju putem
Handlerza izvršenje.
Primene:
- Ažuriranje UI iz non-UI niti.
- Planiranje zadataka sa zakašnjenjem ili u određeno vreme.
- Slanje poruka između niti.
// Primer korišćenja Handler-a za ažuriranje UI iz pozadinske niti
Handler mainHandler = new Handler(Looper.getMainLooper()); // Dobijanje Handler-a glavne niti
new Thread(() -> {
// Izvršavanje duže operacije u pozadini
String result = doBackgroundWork();
// Slanje rezultata u glavnu nit za ažuriranje UI
mainHandler.post(() -> {
// Ovaj kod će biti izvršen u glavnoj niti
updateTextView(result);
});
}).start();
private String doBackgroundWork() {
// Simulacija dužeg rada
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Rezultat rada u pozadini";
}
private void updateTextView(String text) {
// Ažuriranje UI elementa
// someTextView.setText(text);
}