天天看點

Android開發工程師面試題之handler詳解。android程式員,android開發面試資料,詳解...

Message:消息;其中包含了消息ID,消息對象以及處理的資料等,由MessageQueue統一列隊,終由Handler處理

Handler:處理者;負責Message發送消息及處理。Handler通過與Looper進行溝通,進而使用Handler時,需要實作handlerMessage(Message msg)方法來對特定的Message進行處理,例如更新UI等(主線程中才行)

MessageQueue:消息隊列;用來存放Handler發送過來的消息,并按照FIFO(先入先出隊列)規則執行。當然,存放Message并非實際意義的儲存,而是将Message以連結清單的方式串聯起來的,等Looper的抽取。

Looper:消息泵,不斷從MessageQueue中抽取Message執行。是以,一個線程中的MessageQueue需要一個Looper進行管理。Looper是目前線程建立的時候産生的(UI Thread即主線程是系統幫忙建立的Looper,而如果在子線程中,需要手動在建立線程後立即建立Looper[調用Looper.prepare()方法])。也就是說,會在目前線程上綁定一個Looper對象。

Thread:線程;負責排程消息循環,即消息循環的執行場所。

繼續閱讀