小弟正在研究4.1里面的Choreographer模块,现在看到一个问题不太清楚,就是4.1的invalidate所回调的UI消息不再会跟之前一样直接插到主线程消息队列里面去了,而是插到Choreographer里面的一个队列数据结构里面去了,然后会根据硬件所提供的垂直中断信号统一的回插到UI消息队列,代码里在将UI消息插入Choreographer里面的数据结构之前将UI消息队列block掉了(就是调了一个looper的postSyncBarrier函数),然后在UI消息被执行之前就是那个performTraversals函数被调用之前将这个barrier去掉,这部分我基本看明白了,这样一来按照我的理解从消息队列被block之后一直到被解除block状态之前所插入UI消息队列的非Asynchronous消息肯定不会被MessageQueue的next()返回,如果我的理解对的话,那么如果我在performTraversals函数处理过程中在调用一次invalidate(),比方讲在随便哪个view的onDraw函数里面,这样不就使得UI消息队列永远处于block状态了?那我做一个小实验在onDraw调用invalidate之后在随便post一个runnable还是会被执行啊,难道我的理解错了?有没有大神告诉我这种UI消息队列在连续被block状态下的runnable是怎么被执行的啊?asynchronousandroid Choreographer