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();