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

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

          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)建新的線程,這些新的線程都通過(guò)Handler與主線程進(jìn)行通信。通信通過(guò)新線程調(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()分別用來(lái)延遲發(fā)送、定時(shí)發(fā)送;

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

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

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

           



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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 华阴市| 台北县| 清徐县| 西林县| 山西省| 衡阳县| 深水埗区| 黄龙县| 台南市| 孟连| 佛学| 万山特区| 深水埗区| 布尔津县| 志丹县| 湖南省| 新余市| 开鲁县| 弥渡县| 栾川县| 丰县| 富民县| 定远县| 江川县| 绥滨县| 思茅市| 东光县| 郓城县| 收藏| 南乐县| 贡嘎县| 屏东县| 龙岩市| 沈丘县| 正阳县| 岳阳市| 宁远县| 应城市| 安庆市| 启东市| 深泽县|