更新UI採用Handle+Thread,須要發送消息,接受處理消息(在回調方法中處理),比較繁瑣。除此以外,還能夠使用runOnUiThread方法。ide
利用Activity.runOnUiThread(Runnable)把更新ui的代碼建立在Runnable中,而後在須要更新ui時,把這個Runnable對象傳給Activity.runOnUiThread(Runnable)。 ui
Runnable對像就能在ui程序中被調用。若是當前線程是UI線程,那麼行動是當即執行。若是當前線程不是UI線程,操做是發佈到事件隊列的UI線程。this
實現的功能與上一篇文章(Handler+Thread)相同。spa
public class TestActivity extends Activity {線程
Button btn;orm
@Override對象
protected void onCreate(Bundle savedInstanceState) {blog
// TODO Auto-generated method stub隊列
super.onCreate(savedInstanceState);事件
setContentView(R.layout.handler_msg);
btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// 模擬耗時的操做。
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 更新主線程UI
TestActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
btn.setText("更新完畢!");
}
});
}
}).start();
}
});
}