HINWEIS: Diese Antwort hat so viel Aufmerksamkeit erregt, dass ich sie aktualisieren muss. Seit die ursprüngliche Antwort gepostet wurde, hat der Kommentar von @dzeikei fast so viel Aufmerksamkeit erhalten wie die ursprüngliche Antwort. Hier sind also 2 mögliche Lösungen:
1. Wenn Ihr Hintergrund-Thread einen Verweis auf eine Context
Objekt:
Stellen Sie sicher, dass Ihre Hintergrund-Worker-Threads Zugriff auf ein Context-Objekt haben (dies kann der Anwendungs- oder der Service-Kontext sein). Dann tun Sie dies einfach im Hintergrundworker-Thread:
// 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);
2. Wenn Ihr Hintergrund-Thread keinen eigenen Thread hat (oder braucht) Context
Objekt
(vorgeschlagen von @dzeikei):
// 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);