Android的消息循環是參考Windows的消息循環機制來實現的。
消息隊列4件套? Message、MessageQueue、Looper、Handler
1、Message?是消息對列的消息實體類,因為消息隊列中會存放最多10個Message對象。常用屬性?what,是消息體的Tag,用來區分是那個壹消息體。
2、 MessageQueue? 先進先出”的原則存放消息,將Message對象以鏈表的方式串聯起來。
3、Looper?是MessageQueue的管理者,主線程中是壹對壹的關系。子線程需要用到消息對列的話就需要經典二人組 。先調用 Looper.prepare()方法,然後再調用Looper.loop();
4、Handler?是封裝和處理Message對象的。
通過源碼可知消息走向如下
handler.sendMessage()-->handler.sendMessageDelayed()-->handler.sendMessageAtTime()-->msg.target = this;queue.enqueueMessage==>把msg添加到消息隊列中