Android非同步訊息處理機制——handle與Looper,AsyncTask

來源:互聯網
上載者:User

標籤:

Android線程間的通訊採用非同步訊息處理機制,主要由四部分組成,包括Message,Handler,MessageQueue和Looper。

一個線程只有一個Looper與Messagequeue,但可以有多個handler執行個體。

例:線程A發訊息Message,線程B處理訊息Message。

需要線上程B中建立一個Handler執行個體handler,在A線程中通過該handler發送訊息到線程B中的Messagequeue中,

通過B中的Looper以及先進先出的原則取出該訊息並處理訊息,所以B中的handler執行個體必須要重載handleMessage方法。

對於Handler的使用,有如下值得自己注意的地方:

1、摘自http://blog.csdn.net/itachi85/article/details/8035333

Handler建立訊息時首先查詢訊息池中是否有訊息存在,如果有直接從訊息池中取得,如果沒有則重新初始化一個訊息執行個體。使用訊息池的好處是:訊息不被使用時,並不作為記憶體回收,而是放入訊息池,可供下次Handler建立訊息時使用。訊息池提高了訊息對象的複用,減少系統記憶體回收的次數。訊息的建立流程。

2、AsyncTask與handler使用起來的區別

Android非同步訊息處理機制——handle與Looper,AsyncTask

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.