NOTA: Esta resposta recebeu tanta atenção que preciso atualizá-la. Desde que a resposta original foi postada, o comentário de @dzeikei recebeu quase tanta atenção quanto a resposta original. Então, aqui estão duas soluções possíveis:
1. Se o encadeamento em segundo plano tiver uma referência a um Context
objeto:
Verifique se os threads de trabalho em segundo plano têm acesso a um objeto de Contexto (pode ser o contexto de Aplicativo ou o contexto de Serviço). Em seguida, basta fazer isso no thread de trabalho em segundo plano:
// 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. Se o encadeamento em segundo plano não tiver (ou precisar) de um Context
objeto
(sugerido por @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);