runOnUiThread更新主線程

更新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();

}

});

}

相關文章
相關標籤/搜索