Sobes.tech
Junior

Kas ir Handler Android?

sobes.tech AI

Atbilde no AI

Handler - tas ir mehānisms, lai sūtītu un apstrādātu Message un Runnable objektus no pavediena, kas izveido Handler, uz citu pavedienu (vai to pašu).

Tas ļauj plānot koda izpildi noteiktā pavedienā, pat ja jūs atrodaties citā pavedienā. Handler ir saistīts ar Looper, kas apstrādā ziņojumu rindu pavedienā.

Galvenās sastāvdaļas:

  • Handler: sūta ziņojumus un uzdevumus, apstrādā tos saistītajā pavedienā.
  • Looper: sāk ziņojumu apstrādes ciklu noteiktā pavedienā. Katram pavedienam var būt tikai viens Looper, bet ne katrs pavedienu to automātiski ir (piemēram, galvenais pavedienu ir).
  • MessageQueue: ziņojumu rinda, kas saistīta ar Looper.
  • Message/Runnable: objekti, kas tiek sūtīti caur Handler izpildei.

Pielietojums:

  • UI atjaunināšana no ne-UI pavediena.
  • Uzdevumu plānošana ar aizkavēšanos vai noteiktā laikā.
  • Ziņojumu sūtīšana starp pavedieniem.
// Handler izmantošanas piemērs UI atjaunināšanai no fonā esoša pavediena
Handler mainHandler = new Handler(Looper.getMainLooper()); // Saņem galvenā pavediena Handler

jauns pavediens(() -> {
    // Veic kādu ilgstošu darbību fonā
    String result = doBackgroundWork();

    // Nosūta rezultātu galvenajam pavedienam, lai atjauninātu UI
    mainHandler.post(() -> {
        // Šis kods tiks izpildīts galvenajā pavedienā
        updateTextView(result);
    });
}).start();

private String doBackgroundWork() {
    // Ilgas darba imitācija
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    return "Darba rezultāts fonā";
}

private void updateTextView(String text) {
    // UI elementa atjaunināšana
    // someTextView.setText(text);
}