Handler使用方法
解決注意中的第三個問題:用Handler機制處理
Handler機制首先要在主線程中進行聲明
1.耗時的操作不能放在主線程中進行,必須放到子線程中去執行
2.子線程不能更新UI
3.使用Handler解決子線程不能更新UI的問題:
①主線程創建一個Handler,重寫Handler的handlerMessage方法
Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
String result = (String) msg.obj; //主線程對子線程發送的Message對象進行接受
text_show.setText(result);
};
};
②在子線程中創建一個Message對象,封裝獲取的結果
Message msg = new Message();
msg.obj = result;
③使用主線程中的handler對象將Message發送到主線程
handler.sendMessage(msg);
④主線程中的handlerMessage方法接受子線程傳來的Message對象,並取到結果,處理結果
Handler隊列消息機制原理(重要)
有幾個主要元素:
1.Message:用來攜帶子線程中的數據。
2.MessageQueue:用來存放所有子線程發來的Message.
3.Handler:用來在子線程中發送Message,在主線程中接受Message,處理結果
4.Looper:是一個消息循環器,一直循環遍歷MessageQueue,從MessageQueue中取一個Message,派發給Handler處理。