本文将会把一下三个问题阐述清楚以及一个网上的普遍观点的补充: 1,安卓 APP 启动过程,对于 Activity 的 onCreate 等生命周期的函数为什么不会因为 Looper.loop() 里的死循环卡死而永无机会执行。 2,在 1 的基础上,View 的绘制到底是怎样完成的,它又为什么不会因为 Looper.loop() 里的死循环卡死而永无机会刷新。 3,网传的观点大概如下: 1.handler 机制是使用 pipe 来实现的 2. 主线程没有消息处理时阻塞在管道的读端 3.binder 线程会往主线程消息队列里添加消息,然后往管道写端写一个字节,这样就能唤醒主线程从管道读端返回,也就是说 queue.next() 会调用返回 4.dispatchMessage() 中调用 onCreate, onResume 4,子线程真的不能刷新 UI ?