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

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