Handler 為Android操作系統(tǒng)中的線程通信工具,包為android.os.Handler。
與Handler綁定的有兩個隊列,一個為消息隊列,另一個為線程隊列。Handler可以通過這兩個隊列來分別:
- 發(fā)送、接受、處理消息–消息隊列;
- 啟動、結(jié)束、休眠線程–線程隊列;
Android OS中,一個進程被創(chuàng)建之后,主線程(可理解為當前Activity)創(chuàng)建一個消息隊列,這個消息隊列維護所有頂層應用對象(Activities, Broadcast receivers等)以及主線程創(chuàng)建的窗口。你可以在主線程中創(chuàng)建新的線程,這些新的線程都通過Handler與主線程進行通信。通信通過新線程調(diào)用 Handler的post()方法和sendMessage()方法實現(xiàn),分別對應功能:
- post() 將一個線程加入線程隊列;
- sendMessage() 發(fā)送一個消息對象到消息隊列;
當然,post()方法還有一些變體,比如postDelayed()、postAtTime()分別用來延遲發(fā)送、定時發(fā)送;
消息的處理,在主線程的Handler對象中進行;具體處理過程,需要在new Handler對象時使用匿名內(nèi)部類重寫Handler的handleMessage(Message msg)方法;
從消息隊列中獲取消息。
線程加入線程隊列可以在主線程中也可以在子線程中進行,但都要通過主線程的Handler對象調(diào)用post()。

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