Sobes.tech
Junior — Middle

Kaip galima įsigyti žinutę pagrindiniame sraute, naudojant Handler ir Looper?

sobes.tech AI

Atsakymas iš AI

Android'e pagrindiniame (UI) sraute pranešimų apdorojimui naudojamas Looper klasė, kuri sukuria pranešimų apdorojimo ciklą, ir Handler, kuris įkelia pranešimus į šio Looperio eilę.

Norint gauti pranešimą pagrindiniame sraute:

  1. Pagrindiniame sraute iškviečiama Looper.getMainLooper(), kuri grąžina pagrindinio srauto Looperių.
  2. Sukuriamas Handler, susijęs su šiuo Looperių:
Handler handler = new Handler(Looper.getMainLooper()) {
    @Override
    public void handleMessage(Message msg) {
        // Apdorojimas pranešimo pagrindiniame sraute
    }
};
  1. Pranešimai arba Runnable objektai gali būti siunčiami į šį Handler, ir jie bus apdoroti pagrindiniame sraute.

Šiuo būdu Handler ir Looper užtikrina pranešimų eilės ir apdorojimo mechanizmą pagrindiniame sraute, leidžiant saugiai atnaujinti UI iš kitų srautų.