1、什麼是handler?
注:線程分爲主線程(主線程又叫UI線程,只能有一個主線程)和子線程(能夠有多個)Handler只能在主線程裏運行
handler是Android給咱們提供用來更新UI的一套機制,也是一套消息處理機制,咱們能夠發消息,也能夠經過它 處理消息。android
2、爲何要用Handle?
由於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分發給他的消息。