ПРИМІТКА. Ця відповідь привернула стільки уваги, що мені потрібно її оновити. Оскільки оригінальна відповідь була опублікована, коментар від @dzeikei привернув майже стільки ж уваги, скільки і оригінальну відповідь. Ось два варіанти:
1. Якщо ваша фонова нитка має посилання на Context
об'єкт:
Переконайтесь, що ваші потокові робочі потоки мають доступ до об'єкта контексту (це може бути контекст програми або контекст служби). Тоді просто зробіть це в потоці робочого фону:
// 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. Якщо ваша фонова нитка не має (або потребує) Context
об'єкта
(запропоновано @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);