关于Looper阻塞原理

来源:7-3 主线程的 Looper 为什么不会导致应用 ANR ?

AndroidMsky

2019-05-02

老师您好这里可以这样理解吗?
Looper阻塞了自己,因为MyLooper在主线程。那么整个主线程处于一个阻塞的状态,主线程的一切活动都要经过MyLooper,所以比如有用户输入,或者更新ui等操作,MyLooper就被唤醒了,所以主线程虽然阻塞了,但是不会卡顿。 不知道我理解的对不对?

写回答

1回答

bennyhuo

2019-05-02

对的,主线程的事件都需要发送到主线程的looper也就是Looper.mainLooper拿到的。如果主线程没有事件,那么这个Looper就会阻塞在poll_once那里。当然,主线程的事件其实一直比较多,一般不会阻塞哈哈

1
0

大厂资深面试官 带你破解Android高级面试

改变视野和思维 深度与广度兼备的 Android 进阶面试指导课程

1636 学习 · 222 问题

查看课程