Junior
Kas ir Handler Android?
sobes.tech AI
Atbilde no AI
Android Handler ir mekanisms, kas ļauj sadarboties starp pavedieniem. Tas ļauj sūtīt un apstrādāt Message un Runnable no viena pavediena uz citu pavedienu MessageQueue (parasti UI pavedienu).
Galvenās sastāvdaļas:
- Handler: Objekts, kas ir saistīts ar konkrētu pavedienu un tā MessageQueue. Tas sūta ziņojumus un Runnable uz rindu un arī tos apstrādā, izņemot no rindas.
- Looper: Objekts, kas ir saistīts ar pavedienu. Tas "sāk" pavedienu, pastāvīgi izņem uzdevumus (Message vai Runnable) no MessageQueue un nodod tos atbilstošajam Handler apstrādei.
- MessageQueue: Uzdevumu rinda (Message vai Runnable), kas gaida Looper apstrādi.
Kā tas darbojas:
- Handler tiek izveidots tajā pavedienā, kas apstrādās ziņojumus (piemēram, UI pavedienā).
- Šis Handler ir saistīts ar šī pavediena Looper un MessageQueue.
- No cita pavediena (piemēram, fonā) var sūtīt ziņojumus vai Runnable uz MessageQueue caur Handler metodēm (piemēram,
postvaisendMessage). - Looper izņem uzdevumus no MessageQueue.
- Looper nodod katru uzdevumu atbilstošajam Handler apstrādei.
Piemērs UI atjaunināšanai no fonā:
// Handler izveide UI pavedienā
Handler uiHandler = new Handler(Looper.getMainLooper());
// Fonā:
new Thread(new Runnable() {
@Override
public void run() {
// Ilgstošas operācijas veikšana...
// UI atjaunināšana caur Handler
uiHandler.post(new Runnable() {
@Override
public void run() {
// Šeit kods, kas droši atjaunina UI
textView.setText("Operācija pabeigta!");
}
});
}
}).start();
Handler tiek izmantots drošai operāciju izpildei noteiktā pavedienā (bieži UI) bez galvenā pavediena bloķēšanas. Tas ir nepieciešams, jo lielākā daļa UI operāciju jāveic tikai galvenajā pavedienā.