Sobes.tech
Junior — Middle

Jak można zorganizować przesyłanie danych z procesu w tle do głównego wątku wykonawczego?

sobes.tech AI

Odpowiedź od AI

W Androidzie, aby przesłać dane z wątku w tle do głównego (UI) wątku, zwykle stosuje się kilka podejść:

  • Handler: tworzony w głównym wątku i odbiera wiadomości lub Runnable z wątku w tle.
  • runOnUiThread: metoda Activity, pozwalająca wykonać kod w wątku UI.
  • LiveData: obserwowalna jednostka, której aktualizacje są automatycznie dostarczane do UI.
  • ViewModel + Coroutine z Dispatchers.Main: korutyny pozwalają na przełączanie się między wątkami.

Przykład z Handler:

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

new Thread(() -> {
    // Praca w tle
    String result = "Dane z wątku w tle";

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