2011-06-07 66 views
1

爲什麼某些ui更新可以在特殊情況下在Non_UI線程上運行? 例如:某些ui更新可以在特殊情況下在Non_UI線程上運行

Textview textView; 
public void onCreate(Bundle savedInstanceState) { 
    textView = (TextView) findViewById(R.id.my_text); 
    new Thread() { 
     textView.setText("i can change the textview's text"); 
    }.start(); 
} 

我很困惑,當機器人到檢查UI動作是在UI線程上運行?一段時間之後?

回答

0

remembre是唯一線程誰可以改變UI是UIThread, 所以如果你想你的UI從另一個線程改變,你前人的精力使用方法runOnUIThread()這樣的:

YourAcitivity.this.runOnUIThread(new Runnable(){ 
@Override 
public void run(){ 
textView.setText("i can change the textview's text"); 
} 
}); 

第二點::在你的線程,有沒有方法run()

+0

對不起,我錯過了運行方法。但新的線程(){ public void run(){ textView.setText(「我可以改變textview的文本」); } } .start();但是這也是罰款。 – asfman 2011-06-09 11:59:12

0

你實際上並沒有設置在其他線程中的文本。要在新線程中運行的代碼採用run方法,您應該執行該方法。這是正確的語法:

new Thread() { 
    public void run(){ 
     textView.setText("i can change the textview's text"); 
    } 
}.start(); 
相關問題