Sobes.tech
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();