Android-performTraversals

PerformTraversals

該方法是在ViewRootImpl.java文件中,一旦觸發(fā)該操作,就會從decorView開始進行measure,Layout,draw了。
在scheduleTraversals中會調(diào)用Choregrapher.postCallback,將它post出去,而postSyncBarrier方法禁止了后續(xù)的消息處理,一旦post出去了同步的Barrier之后,所有的非異步調(diào)用的消息就會被停止分發(fā)。

scheduleTraversals

doTraversal是在一個Runnable的run方法中執(zhí)行的

TraversalRunnable

而PerformTraversals函數(shù),是在doTraversal方法中被調(diào)用的。


doTraversal

可以看到其中會調(diào)用
mHandler.getLooper().removeSyncBarrier(mTraversalBarrier),再調(diào)用performTraversals函數(shù)。
removeSyncBarrier的注釋為:刪除掉一個同步的Barrier。源碼中看,就是刪除了一個以Message.arg1為mTraversalBarrier的Message。也就是說,會首先從MessageQueue中把mTraversalBarrier的這個Message刪除,然后調(diào)用performTraversals。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容