Sobes.tech
Junior

Mis on Handler Androidis?

sobes.tech AI

Vastus AI-lt

Handler - see on mehhanism sõnumeid Message ja Runnable objekte saatmiseks ja töötlemiseks niidist, mis loob Handleri, teise niidi (või sama niidi).

See võimaldab koodi täitmise planeerimist kindlas niidis, isegi kui olete teises niidis. Handler on seotud Looper-ga, mis haldab sõnumijada niidis.

Peamised komponendid:

  • Handler: saadab sõnumeid ja ülesandeid, töötleb neid seotud niidis.
  • Looper: käivitab sõnumijada töötlemistsükli konkreetse niidi jaoks. Iga niit võib omada ainult ühte Looperit`, kuid mitte iga niit seda automaatselt omab (näiteks peamine niit omab).
  • MessageQueue: sõnumijada, mis on seotud Looper-ga.
  • Message/Runnable: objektid, mida saadetakse Handleri kaudu täitmiseks.

Kasutus:

  • UI uuendamine mitte-UI niidist.
  • Ülesannete ajastamine viivitusega või kindlal ajal.
  • Sõnumite saatmine niitide vahel.
// Handleri kasutamise näide UI uuendamiseks taustaniidist
Handler mainHandler = new Handler(Looper.getMainLooper()); // Saame peamise niidi Handleri

uus niit(() -> {
    // Teeme mingi pikaajalise operatsiooni taustaniidis
    String result = doBackgroundWork();

    // Saadame tulemuse peamise niidi jaoks UI uuendamiseks
    mainHandler.post(() -> {
        // See kood täidetakse peamise niidi kontekstis
        updateTextView(result);
    });
}).start();

private String doBackgroundWork() {
    // Pika töö imiteerimine
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    return "Taustatöö tulemus";
}

private void updateTextView(String text) {
    // UI elemendi uuendamine
    // someTextView.setText(text);
}