Hanlder Looper MessageQueue Message
Handler:處理消息
Message:消息
MessageQueue:消息隊列
Looper:MessageQueue的管理者
?
MessageQueue:
? 消息隊列。以先進先出的原則存放多個Message.MessageQueue是通過Handler進行管理,通過Looper.Prepare()創建Looper的同時會自動創建MessageQueue對象.UI主線程默認會創建Looper,其他線程需要手動創建.通過Looper. Prepare()和Looper. Looper.loop(),對MessageQueue進行循環處理。
?
Message:
? 消息對象。new Message().obtain()得到Message,如果Message Pool中已經有Message對象則總Pool獲取,沒有則創建一個新的Message對象。也可以同過new Message()創建一個新的對象。
?
Looper:
? Looper是MessageQueue的管理者,創建Looper對象就會創建MessageQueue,MessageQueu脫離不了Looper.除了UI主線程會創建一個默認的Looper,其他線程都要通過Looper.prepare()方法創建。Looper遵循先進先出的原則,循環從MessageQueue中讀取Message。
? Looper從MessageQueue中取出消息后交給Handler().handleMessage(msg)處理,處理完成調用Message().recycle() 放入到Message Pool中.
?
Handler:
? 負責處理消息。Handler將消息封裝成Message,通過new Message().obtainMessage()創建一個Message,也可以通過Message message = new Message()創建消息。Handler().obtainMessage()方法如果Message Pool中已經有Message對象,則直接調用該對象,不用每次創建一個對象
。將消息傳遞給Looper,調用Handler().sendMessage(msg)時,Looper將Message加入到MessageQueue.繼而Looper通過廣播的形式將消息發送出去,Hanlder通過Handler().obtainMessage()方法接受到消息,做相應處理.
轉載于:https://www.cnblogs.com/webview/p/4226687.html
總結
以上是生活随笔為你收集整理的Hanlder Looper MessageQueue Message的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: traceroute和mtr
- 下一篇: 广告banner:手动滑动切换,自动切换