Android的MessageQueue經(jīng)歷過一次大的變化坛善,在2.0的時候邻眷,還沒有native這一層。但到了2.3改衩,就變?yōu)榱爽F(xiàn)在這種模式。
TL,DR
- MessageQueue是個單鏈表
- MessageQueue里消息按時間排序
- MessageQueue的next()是個堵塞方法
MessageQueue理解的核心在next()這里葫督。next()的實現(xiàn)根據(jù)版本不同有兩種板惑,一種是Java的實現(xiàn),一種是帶動native層的實現(xiàn)洽胶。
Java的實現(xiàn)比較簡單,就是wait()和notify()姊氓。
目前使用的方式是在native層整了一份MessageQueue, Looper喷好。具體過程深入理解Android卷2寫的很好了,先直接看下面的參考資料吧棕孙。