一、什麼是handler? 註:線程分為主線程(主線程又叫UI線程,只能有一個主線程)和子線程(可以有多個)Handler只能在主線程里運行 handler是Android給我們提供用來更新UI的一套機制,也是一套消息處理機制,我們可以發消息,也可以通過它 處理消息。 1 2 因為android在設 ...
一、什麼是handler?
註:線程分為主線程(主線程又叫UI線程,只能有一個主線程)和子線程(可以有多個)Handler只能在主線程里運行
handler是Android給我們提供用來更新UI的一套機制,也是一套消息處理機制,我們可以發消息,也可以通過它 處理消息。
二、為什麼要用Handle?
- 1
- 2
因為android在設計的時候就封裝了一套消息創建、傳遞、處理。如果不遵循就不能更新UI信息,就會報出異常(所謂的非同步消息處理)
三、 Handler的工作原理?
Handler的工作原理是Handler發送消息給MessageQuee給形成Handle MessageQuee再由Handle MessageQuee傳遞消息給Looper(一個對象)最後由Looper遞交給 Handler處理(一個Handler裡面必須要有一個Looper)
Handler、Looper、MessageQueen、Message的關係
Message: Handler接收和處理的消息對象
MessageQueen: 存儲消息對象的隊列
Looper: 負責讀取MessageQueen中的消息,讀到消息之後就把消息交給Handler去處理。
Handler:發送消息和處理消息
四、什麼是Message Quee
Message Quee就是存儲消息對象的隊列(消息來自於Message)
五、Handler怎麼用
Handler主要有發送消息和處理消息兩大作用
Handler發送消息給Message而Message再由 MessageQueen進行消息的存儲,接著由Looper負責讀取 MessageQueen中的消息,最後由Handler處理消息。
總結:
Looper的作用:每個線程只有一個Looper,他負責管理MessageQueue,會不斷的從MessageQueue取出消息,分發給對象 的handler
MessageQueue的作用:由Looper管理,而MessageQueue則採用先進的方法來管理Message!
Handler的作用:它把消息發送給Looper管理的MessageQueue,並負責處理Looper分發給他的消息。