Junior — Middle
Jak lze zorganizovat přenos dat z pozadí procesu do hlavního vlákna?
sobes.tech AI
Odpověď od AI
V Androidu se pro přenos dat z pozadí vlákna do hlavního (UI) vlákna obvykle používá několik přístupů:
- Handler: je vytvořen v hlavním vlákně a přijímá zprávy nebo Runnable z pozadí.
- runOnUiThread: metoda Activity, která umožňuje spustit kód v UI vlákně.
- LiveData: pozorovatelná entita, jejíž aktualizace jsou automaticky doručovány do UI.
- ViewModel + Coroutine s Dispatchers.Main: korutiny umožňují přepínání mezi vlákny.
Příklad s Handler:
Handler mainHandler = new Handler(Looper.getMainLooper());
new Thread(() -> {
// Práce na pozadí
String result = "Data z pozadí";
mainHandler.post(() -> {
// Aktualizace UI
textView.setText(result);
});
}).start();