- 此方法其本质也是通过调用ViewRootImpl传递过来的主线程Handler来完成消息发送、处理;
- 这个Handler由View的dispatchAttachedToWindow方法参数AttachInfo传递而来;
- 如果在View还没有获取到AttachInfo时(视图没有添加到窗口上)调用了post方法,则此消息将被暂存到等待队列中;
API Level 24 之前等待队列保存在ViewRootImpl中;
API Level 24 之后等待队列保存在发送消息的View中; - 等待队列中的消息在获取AttachInfo后将被执行然后清空;这些任务在绘制结束后在执行
- 由于等待队列的创建没有做线程同步处理,所以如果在多线程中调用可能会创建出多个等待队列,部分任务将会丢失;
2020-11-22
网友评论