posts - 101,  comments - 29,  trackbacks - 0
          Handler 為Android操作系統(tǒng)中的線程通信工具,包為android.os.Handler。

          與Handler綁定的有兩個(gè)隊(duì)列,一個(gè)為消息隊(duì)列,另一個(gè)為線程隊(duì)列。Handler可以通過這兩個(gè)隊(duì)列來分別:

          1. 發(fā)送、接受、處理消息–消息隊(duì)列;
          2. 啟動(dòng)、結(jié)束、休眠線程–線程隊(duì)列;

          Android OS中,一個(gè)進(jìn)程被創(chuàng)建之后,主線程(可理解為當(dāng)前Activity)創(chuàng)建一個(gè)消息隊(duì)列,這個(gè)消息隊(duì)列維護(hù)所有頂層應(yīng)用對(duì)象(Activities, Broadcast receivers等)以及主線程創(chuàng)建的窗口。你可以在主線程中創(chuàng)建新的線程,這些新的線程都通過Handler與主線程進(jìn)行通信。通信通過新線程調(diào)用 Handler的post()方法和sendMessage()方法實(shí)現(xiàn),分別對(duì)應(yīng)功能:

          1. post()  將一個(gè)線程加入線程隊(duì)列;
          2. sendMessage() 發(fā)送一個(gè)消息對(duì)象到消息隊(duì)列;

          當(dāng)然,post()方法還有一些變體,比如postDelayed()、postAtTime()分別用來延遲發(fā)送、定時(shí)發(fā)送;

          消息的處理,在主線程的Handler對(duì)象中進(jìn)行;具體處理過程,需要在new Handler對(duì)象時(shí)使用匿名內(nèi)部類重寫Handler的handleMessage(Message msg)方法;

          從消息隊(duì)列中獲取消息。

          線程加入線程隊(duì)列可以在主線程中也可以在子線程中進(jìn)行,但都要通過主線程的Handler對(duì)象調(diào)用post()。

           



          posted on 2012-01-25 20:20 mixer-a 閱讀(235) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 淮北市| 南皮县| 察隅县| 于都县| 泊头市| 忻州市| 临海市| 顺义区| 名山县| 晋城| 分宜县| 五峰| 海南省| 措美县| 名山县| 科技| 临清市| 宜城市| 宝兴县| 修武县| 土默特右旗| 荃湾区| 高邑县| 南郑县| 沧源| 信丰县| 盐池县| 晋州市| 清丰县| 榆社县| 武汉市| 稷山县| 邓州市| 霍州市| 洪洞县| 蒙城县| 江津市| 肃北| 司法| 黔东| 尼玛县|