私はAndroidフレームワーク(v4.1)のコードについて勉強していました。Choreographerの仕組み
は私がinvalidate()
によってトリガUIメッセージは、今直接UIメッセージキューの代わりに振付する掲載されていることを知っており、これらのメッセージは、次のVSYNC信号が来るまで実行されません。
このポスト操作が実行される前に、ViewRootImpl
が機能performTraversals()
前に発生messagesQueueに投稿したメッセージこのブロックが除去されるまで、後に実行されませんが、意味UIメッセージキューをブロックするために、一度ルーパーのpostSyncBarrier()
を呼び出します。以上のことから
、
別
invalidate()
はどこか(例えば任意のビューインスタンスのonDraw()
など)performTraversals()
以内に一度も呼び出された場合はUIメッセージキューが永遠にブロックされますか?
実用的な観察から、私はこれが決して起こらないことを知っています。
だから、どこが間違っていますか?