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:
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);
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!