CATATAN: Jawaban ini telah mendapatkan begitu banyak perhatian, sehingga saya perlu memperbaruinya. Sejak jawaban asli diposting, komentar dari @dzeikei hampir mendapat perhatian sama seperti jawaban aslinya. Jadi, inilah 2 solusi yang mungkin:
1. Jika utas latar belakang Anda memiliki referensi ke Context
objek:
Pastikan utas pekerja latar belakang Anda memiliki akses ke objek Konteks (bisa konteks Aplikasi atau konteks Layanan). Kemudian lakukan ini di utas latar belakang pekerja:
// 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. Jika utas latar belakang Anda tidak memiliki (atau membutuhkan) Context
objek
(disarankan oleh @dikeikei):
// 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);