หมายเหตุ: คำตอบนี้ได้รับความสนใจอย่างมากซึ่งฉันจำเป็นต้องอัปเดต เนื่องจากคำตอบดั้งเดิมถูกโพสต์ความคิดเห็นจาก @dzeikei ได้รับความสนใจเกือบเท่ากับคำตอบดั้งเดิม ดังนั้นนี่คือคำตอบที่เป็นไปได้ 2 ข้อ:
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);