runOnUiThread更新主線程


更新UI采用Handle+Thread,需要發送消息,接受處理消息(在回調方法中處理),比較繁瑣。除此之外,還可以使用runOnUiThread方法。
 
利用Activity.runOnUiThread(Runnable)把更新ui的代碼創建在Runnable中,然后在需要更新ui時,把這個Runnable對象傳給Activity.runOnUiThread(Runnable)。 
 
Runnable對像就能在ui程序中被調用。如果當前線程是UI線程,那么行動是立即執行。如果當前線程不是UI線程,操作是發布到事件隊列的UI線程。
 
實現的功能與 上一篇文章(Handler+Thread)相同。
 

public class TestActivity extends Activity {

 

Button btn;

 

@Override

protected void onCreate(Bundle savedInstanceState) {

// 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();

 

}

});

 

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM