文章轉載只能用於非商業性質,且不能帶有虛擬貨幣、積分、註冊等附加條件。轉載須註明出處:http://blog.csdn.net/flowingflying/異步
以前咱們有一篇很好的博文《Android學習筆記(三一):線程:Message和Runnable》對Handler進行了介紹。在此,咱們做進一步瞭解。函數
前面,咱們已經學習到主線程有一個主線程隊列,對於異步處理(如Activity的UI觸發、觸發本地服務的startService(),以及外部進程調用Activity和廣播)。異步處理以消息的方式放入主線程隊列中,排隊依次進行處理。學習
Handler就是將消息放入隊列的機制。咱們在哪一個線程中創新handler,handler就將消息放入所在的線程,除非在建立handler對象時是指定具體的線程。一般handler在主線程建立,handler可將消息放入主線程隊列中。.net
消息會帶有handler參考,這個handler對象將message放入隊列,當message被處理時,會經過消息所帶的handler參考,觸發handler對象中的回調函數進行處理。線程
經過Handler,Android對外隱藏了隊列。處理步驟以下:對象
一、建立Handler對象和消息對象blog
二、handler將消息放入隊列中,在此過程當中消息會記錄handler的參考(即對象)隊列
三、當輪到消息處理時,觸發消息已記錄的handler參考的回調函數進程
相關連接: 個人Android開發相關文章開發