我剛剛在研究Android框架代碼(v4.1)。編舞師如何工作
我知道,通過invalidate()
觸發的UI消息現在被髮布,而不是直接到編舞UI消息隊列的,並且這些消息不會等到明年VSYNC信號來執行。
執行這個崗位操作之前,ViewRootImpl
稱活套的postSyncBarrier()
一次,以阻止用戶界面的MessageQueue這意味着發佈到messagesQueue以後將不會被執行,直到該塊被刪除,功能performTraversals()
之前恰好消息。
基於上述認識,
如果另一個
invalidate()
稱爲即使一次內performTraversals()
(如任何視圖的實例onDraw()
)的UI消息隊列永遠被阻止某處?
從實際觀察,我知道這從來沒有發生。
那麼,我錯在哪裏?