2011-02-23 73 views

回答

4

使用android.os.Handler實例訪問從另一個線程UI線程:

例如:

class YourUI exends Activity { 

    private Handler hm; 

    @override 
    public void onCreate(Bundle b) { 
     // do stuff, and instantiate the handler 
     hm = new Handler() { 
      public void handleMessage(Message m) { 
       // toast code 
      } 
     }; 
    } 


    public Handler returnHandler(){ 
     return hm; 
    } 
} 

在非UI線程中,使用:

YourUI.getHandler().sendEmptyMeassage(0); 
+0

最好使用hm.sendEmptyMessage(0);在非UI線程:) – 2013-06-19 16:02:12

+0

爲我工作!謝謝!! (0);'to YourUI.returnHandler()。sendEmptyMeassage(0);'與您發佈的代碼一致。但完美的作品(+1) – Shudy 2013-07-04 09:14:49

11

嘗試下面的代碼在你的線程

runOnUiThread(new Runnable() 
     {     
      @Override 
      public void run() 
      { 
       //Your toast code here 
      } 
     }); 

會發生什麼線程是一個非GUI線程,你不能從非GUI線程訪問GUI元素