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