android開發筆記:Handler、Looper、MessageQueen、Message的關係

1、什麼是handler? 
注:線程分爲主線程(主線程又叫UI線程,只能有一個主線程)和子線程(能夠有多個)Handler只能在主線程裏運行 
handler是Android給咱們提供用來更新UI的一套機制,也是一套消息處理機制,咱們能夠發消息,也能夠經過它 處理消息。android

2、爲何要用Handle?
  • 1
  • 2

由於android在設計的時候就封裝了一套消息建立、傳遞、處理。若是不遵循就不能更新UI信息,就會報出異常(所謂的異步消息處理) 
3、 Handler的工做原理? 
Handler的工做原理是Handler發送消息給MessageQuee給造成Handle MessageQuee再由Handle MessageQuee傳遞消息給Looper(一個對象)最後由Looper遞交給 Handler處理(一個Handler裏面必需要有一個Looper)異步

Handler、Looper、MessageQueen、Message的關係 
Message: Handler接收和處理的消息對象oop

MessageQueen: 存儲消息對象的隊列線程

Looper: 負責讀取MessageQueen中的消息,讀到消息以後就把消息交給Handler去處理。設計

Handler:發送消息和處理消息code

4、什麼是Message Quee 
Message Quee就是存儲消息對象的隊列(消息來自於Message)對象

5、Handler怎麼用 
Handler主要有發送消息和處理消息兩大做用 
Handler發送消息給Message而Message再由 MessageQueen進行消息的存儲,接着由Looper負責讀取 MessageQueen中的消息,最後由Handler處理消息。隊列

總結: 
Looper的做用:每一個線程只有一個Looper,他負責管理MessageQueue,會不斷的從MessageQueue取出消息,分發給對象 的handlerclass

MessageQueue的做用:由Looper管理,而MessageQueue則採用先進的方法來管理Message!原理

Handler的做用:它把消息發送給Looper管理的MessageQueue,並負責處理Looper分發給他的消息。

相關文章
相關標籤/搜索