1. 程式人生 > >Android 消息機制

Android 消息機制

new 需要 一個 目標 width handle rri his 技術

一、 Handler 1、使用 <1>在主線程中定義一個 Handler, 重寫 handleMessage 方法
  //在主線程中定義一個Handler
private Handler handler=new Handler(){
//這個方法是在主線程中執行的
@Override
public void handleMessage(Message msg) {
tv_result.setText(msg.obj.toString());
}
};
<2> 在子線程中使用主線程中創建的handler 發送消息
    Message msg=new Message();
msg.obj=content;
handler.sendMessage(msg);//發消息
2、handler 原理
子線程是不能直接操作UI線程的,需要通過 handler,首先發送到(messagequeue)消息隊列當中,然後Looper 會不斷的循環
得到這條消息,再通過 handleMessage 方法執行得到消息
handler 的作用是用來發消息和處理消息的
Looper 的作用是去消息隊列 (messagequeue) 中取消息
Looper 是在主線程一創建就有了技術分享
3、Message what 屬性的使用 <1> 設置 what 的 值
    Message msg=new Message();
msg.what=REQUESTEXCEPTION;
handler.sendMessage(msg);
<2>在 handleMessage 方法中進行判斷,執行不同操作
    @Override
public void handleMessage(Message msg) {
switch (msg.what){
case REQUESTSUCCESS
: //請求成功
tv_result.setText(msg.obj.toString());
break;
case REQUESTNOTFIND: //目標資源不存在
Toast.makeText(MainActivity.this, "目標資源不存在", Toast.LENGTH_SHORT).show();
break;
case REQUESTEXCEPTION: //異常
Toast.makeText(MainActivity.this, "服務器忙 請稍等。。。", Toast.LENGTH_SHORT).show();
}
}
關於 Message: 可以通過 技術分享 ,這樣的方式來創建,減少對象的創建。



null

Android 消息機制