網頁

2011年6月30日 星期四

Android筆記_Thread傳Message到Handler

如果運算比較長或是不希望造成Activity暫停回應的狀況,會將運算的部分另開一個Thread,而在Thread中並沒有辦法改變畫面上的任何UI,所以會使用Handler來完成UI更新的目的。(參考)

但在計算中並不是都會正確的完成,所以在Handler中也必須判斷Thread的執行狀況來做出不同的反應,那麼就必須依靠Message來完成兩者間的資訊傳遞。

流程:
1. 建立一個Thread,並傳遞指定相關資訊到Message中,利用handler.sendMessage傳遞出去。

Thread thread = new Thread(){
@Override
public void run() {
Message message;
String obj = "OK";
message = handler.obtainMessage(1,obj);
handler.sendMessage(message);
}
}
thread.start();
thread = null;

2. 於handler中依照傳遞的訊息做出相對應的反應

private Handler DOFindAttributehandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String MsgString = (String)msg.obj;
if (MsgString.equals("OK"))
{
......
}
}
};

沒有留言:

張貼留言