Sobes.tech
Junior — Middle

Wie kann man die Datenübertragung von einem Hintergrundprozess zum Hauptausführungsthread organisieren?

sobes.tech KI

Antwort von AI

Unter Android werden zum Übertragen von Daten aus einem Hintergrund-Thread in den Haupt- (UI-)Thread in der Regel mehrere Ansätze verwendet:

  • Handler: Wird im Haupt-Thread erstellt und empfängt Nachrichten oder Runnable vom Hintergrund-Thread.
  • runOnUiThread: Methode der Activity, die es ermöglicht, Code im UI-Thread auszuführen.
  • LiveData: beobachtbare Entität, deren Aktualisierungen automatisch an die UI geliefert werden.
  • ViewModel + Coroutine mit Dispatchers.Main: Coroutines ermöglichen das Umschalten zwischen Threads.

Beispiel mit Handler:

Handler mainHandler = new Handler(Looper.getMainLooper());

new Thread(() -> {
    // Hintergrundarbeit
    String result = "Daten aus dem Hintergrund-Thread";

    mainHandler.post(() -> {
        // UI-Update
        textView.setText(result);
    });
}).start();