Heim >Java >javaLernprogramm >Wie verwende ich runOnUiThread richtig, um die Android-Benutzeroberfläche aus einem Hintergrundthread zu aktualisieren?

Wie verwende ich runOnUiThread richtig, um die Android-Benutzeroberfläche aus einem Hintergrundthread zu aktualisieren?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-01 00:40:10847Durchsuche

How to Correctly Use runOnUiThread to Update Android UI from a Background Thread?

runOnUiThread in der Android-Entwicklung

Threads in Android sind wichtig, um Aufgaben im Hintergrund auszuführen, ohne den Haupt-UI-Thread zu blockieren. Um mit UI-Elementen aus einem Hintergrundthread zu interagieren, stellt Android die runOnUiThread-Methode bereit.

Missverständnis im bereitgestellten Code

Im angegebenen Code tritt das Problem innerhalb des runThread auf Verfahren. Das Erstellen einer neuen Thread-Instanz mit der Runnable-Implementierung ist korrekt. Die direkte Ausführung von runOnUiThread im Hintergrundthread ist jedoch falsch.

Korrekte Implementierung

Um runOnUiThread ordnungsgemäß zu verwenden, wird empfohlen, ein separates Runnable-Objekt im Hintergrund zu erstellen Thread und übergeben Sie ihn dann an runOnUiThread. Der Haupt-UI-Thread führt dann dieses übergebene Runnable aus, um die UI-Elemente zu aktualisieren.

Hier ist der korrigierte Code für die runThread-Methode:

private void runThread() {
    new Thread() {
        public void run() {
            while (i++ < 1000) {
                try {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            btn.setText("#" + i);
                        }
                    });
                    Thread.sleep(300);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }.start();
}

Das obige ist der detaillierte Inhalt vonWie verwende ich runOnUiThread richtig, um die Android-Benutzeroberfläche aus einem Hintergrundthread zu aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn