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:線程;負責排程消息循環,即消息循環的執行場所。