android 實作等待界面,一般我們在執行比較費時的操作時,不能讓界面線程阻塞,否則android發現太長時間阻塞的話,會彈出關閉該應用的對話框,是以我們一般把比較耗時的操作放在另一個線程去執行,然後界面線程該幹什麼幹什麼,等操作完成後,再通知界面線程完成相應的操作即可。
message可以傳回不同類型的值,可以應對不同需要。
//聲明變量
private button b1;
private progressdialog pd;
//定義handler對象
private handler handler =new handler(){
@override
//當有消息發送出來的時候就執行handler的這個方法
public void handlemessage(message msg){
super.handlemessage(msg);
//隻要執行到這裡就關閉對話框
pd.dismiss();
}
};
public void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.main);
}
private void processthread(){
//建構一個下載下傳進度條
pd= progressdialog.show(mainhandler.this, "同步", "正在同步…");
new thread(){
public void run(){
//在這裡執行長耗時方法
longtimemethod();
//執行完畢後給handler發送一個消息
handler.sendemptymessage(0);
}
}.start();
這樣的寫法比較簡潔,運作效率也高。