Junior — Middle
Ako možno zorganizovať prenos dát z pozadia procesu do hlavného vlákna vykonávania?
sobes.tech AI
Odpoveď od AI
V Androide sa na prenos dát z pozadia do hlavného (UI) vlákna zvyčajne používame niekoľko prístupov:
- Handler: vytvorí sa v hlavnom vlákne a prijíma správy alebo Runnable z pozadia.
- runOnUiThread: metóda Activity, ktorá umožňuje vykonať kód v UI vlákne.
- LiveData: pozorovateľná entita, ktorej aktualizácie sa automaticky doručujú do UI.
- ViewModel + Coroutine s Dispatchers.Main: korutiny umožňujú prepínanie medzi vláknami.
Príklad s Handler:
Handler mainHandler = new Handler(Looper.getMainLooper());
new Thread(() -> {
// Práca na pozadí
String result = "Dáta z pozadia";
mainHandler.post(() -> {
// Aktualizácia UI
textView.setText(result);
});
}).start();