Android 訊息機制

來源:互聯網
上載者:User

標籤:src   rem   tle   tno   不同   style   back   技術   資源   

 一、  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 訊息機制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.