新聞中心
面試:Handler的工作原理是怎樣的?
Handler機制工作原理:

創(chuàng)新互聯從2013年創(chuàng)立,公司以成都網站設計、網站制作、系統(tǒng)開發(fā)、網絡推廣、文化傳媒、企業(yè)宣傳、平面廣告設計等為主要業(yè)務,適用行業(yè)近百種。服務企業(yè)客戶近1000家,涉及國內多個省份客戶。擁有多年網站建設開發(fā)經驗。為企業(yè)提供專業(yè)的網站建設、創(chuàng)意設計、宣傳推廣等服務。 通過專業(yè)的設計、獨特的風格,為不同客戶提供各種風格的特色服務。
Handler 工作流程基本包括 Handler、Looper、Message、MessageQueue 四個部分。但我們在日常開發(fā)中,經常都只會用到 Handler 和 Message 兩個類。Message 負責消息的搭載,里面有個 target 用于標記消息,obj 用于存放內容,Handler 負責消息的分發(fā)和處理。
下面具體給你講解一下:
Handler機制是由Looper和MessageQueue來構建消息機制的。
MessageQueue:消息隊列。雖然名為隊列,但事實上它的內部存儲結構并不是真正的隊列,而是采用單鏈表的數據結構來存儲消息列表的,其中主要有插入enqueue()和從中拿走并刪除next()兩個方法。
Looper:消息循環(huán)。MessageQueue來存儲消息,Looper則是以無限循環(huán)的方式去查找是否有新消息,如有就去處理,若沒有就standby(等待)。一個線程創(chuàng)建Handler時首先需要創(chuàng)建Looper的,不然報錯:RuntimeException: No Looper; Looper.prepare() wasn't called on this thread,而且每個線程下只需要創(chuàng)建一個Looper,不然會報錯:RuntimeException: Only one Looper may be created per thread。
面試中回答,建議能自己總結一套自己的專屬答案,并理解透,那樣當遇到這個問題,就能回答的游刃有余!
到此,以上就是小編對于如何理解人才是第一資源的問題就介紹到這了,希望這1點解答對大家有用。
分享文章:如何理解Looper.prepare
瀏覽路徑:http://www.5511xx.com/article/cdeogoh.html


咨詢
建站咨詢
