Heim >Java >javaLernprogramm >Wie poste ich Aufgaben aus einem anderen Thread im Android-Hauptthread?

Wie poste ich Aufgaben aus einem anderen Thread im Android-Hauptthread?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-09 04:59:18245Durchsuche

How to Post Tasks to the Android Main Thread from Another Thread?

Aufgaben aus einem anderen Thread im Android-Dienst im Hauptthread veröffentlichen

In Android-Diensten kann es beim Erstellen von Threads für Hintergrundaufgaben erforderlich sein, bestimmte Aufgaben zu veröffentlichen, wie Runnables, in der Nachrichtenwarteschlange des Hauptthreads von einem anderen Thread.

Um dies zu erreichen, stellt Android zwei bereit Lösungen:

Ein Kontextobjekt verwenden

Wenn der Hintergrundthread einen Verweis auf ein Kontextobjekt hat, können Sie wie folgt auf den Handler des Hauptthreads zugreifen:

// Get a handler that can be used to post to the main thread
Handler mainHandler = new Handler(context.getMainLooper());

Runnable myRunnable = new Runnable() {
    @Override 
    public void run() {....} // This is your code
};
mainHandler.post(myRunnable);

Ohne Verwenden eines Kontextobjekts

Wenn der Hintergrundthread kein Kontextobjekt hat, können Sie direkt auf den Looper des Hauptthreads zugreifen und einen erstellen Handler:

// Get a handler that can be used to post to the main thread
Handler mainHandler = new Handler(Looper.getMainLooper());

Runnable myRunnable = new Runnable() {
    @Override 
    public void run() {....} // This is your code
};
mainHandler.post(myRunnable);

Mit jedem dieser Ansätze können Sie Aufgaben in der Nachrichtenwarteschlange des Hauptthreads posten und sicherstellen, dass sie im Hauptthread ausgeführt werden, sodass Sie UI-Komponenten aktualisieren oder andere Vorgänge ausführen können, die Zugriff erfordern zu den Hauptressourcen der Anwendung.

Das obige ist der detaillierte Inhalt vonWie poste ich Aufgaben aus einem anderen Thread im Android-Hauptthread?. 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