Sobes.tech
Junior — Middle

Kaip galima organizuoti duomenų perdavimą iš foninio proceso į pagrindinį vykdymo srautą?

sobes.tech AI

Atsakymas iš AI

Android'e, norint perduoti duomenis iš foninio srauto į pagrindinį (UI) srautą, paprastai naudojami keli požiūriai:

  • Handler: sukuriamas pagrindiniame sraute ir gauna žinutes arba Runnable iš foninio srauto.
  • runOnUiThread: Activity metodas, leidžiantis vykdyti kodą UI sraute.
  • LiveData: stebima esybė, kurios atnaujinimai automatiškai pristatomi į UI.
  • ViewModel + Coroutine su Dispatchers.Main: korutinės leidžia perjungti tarp srautų.

Pavyzdys su Handler:

Handler mainHandler = new Handler(Looper.getMainLooper());

new Thread(() -> {
    // Foninis darbas
    String result = "Duomenys iš foninio srauto";

    mainHandler.post(() -> {
        // UI atnaujinimas
        textView.setText(result);
    });
}).start();