Junior
Kas yra Handler Android?
sobes.tech AI
Atsakymas iš AI
Handler - tai mechanizmas siųsti ir apdoroti Message ir Runnable objektus iš srauto, kuris sukuria Handler, į kitą srautą (arba tą patį).
Jis leidžia planuoti kodo vykdymą tam tikrame sraute, net jei esate kitame sraute. Handler yra susijęs su Looper, kuris tvarko žinučių eilę sraute.
Pagrindiniai komponentai:
- Handler: siunčia žinutes ir užduotis, apdoroja jas susijusiame sraute.
- Looper: pradeda žinučių eilės apdorojimo ciklą tam tikrame sraute. Kiekvienas srautas gali turėti tik vieną
Looper, bet ne kiekvienas srautas jo turi pagal numatytuosius nustatymus (pavyzdžiui, pagrindinis srautas turi). - MessageQueue: žinučių eilė, susijusi su
Looper. - Message/Runnable: objektai, siunčiami per
Handlervykdymui.
Naudojimas:
- UI atnaujinimas iš ne-UI srauto.
- Užduočių planavimas su vėlavimu arba tam tikru laiku.
- Žinučių siuntimas tarp srautų.
// Handler naudojimo pavyzdys UI atnaujinimui iš foninio srauto
Handler mainHandler = new Handler(Looper.getMainLooper()); // Gauname pagrindinio srauto Handler
new Thread(() -> {
// Atlikti kokią nors ilgą operaciją foniniame sraute
String result = doBackgroundWork();
// Siųsti rezultatą į pagrindinį srautą UI atnaujinimui
mainHandler.post(() -> {
// Šis kodas bus vykdomas pagrindiniame sraute
updateTextView(result);
});
}).start();
private String doBackgroundWork() {
// Ilgos darbo imitacija
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Fono darbo rezultatas";
}
private void updateTextView(String text) {
// UI elemento atnaujinimas
// someTextView.setText(text);
}