当looper循环因为MessageQueue中消息为空而阻塞时,应用会不会卡住不动

来源:8-5 主线程进入loop循环了为什么没有ANR?

海怪

2020-03-14

老师你好!
请问当looper循环因为MessageQueue中消息为空而阻塞时,主线程是不是就阻塞了,那么会不会造成主线程没有机会再发送新的消息进入消息队列**(因为主线程阻塞在读取消息的地方了)**,会不会造成界面无法响应用户的事件了

写回答

2回答

风语

2020-04-06

点击按钮之后,事件是从系统进程派发到应用进程的,从Binder线程发消息到应用的主线程处理

1
0

风语

2020-03-31

不会,主线程阻塞了,所以只能通过其它的线程来唤醒,比如用户点击了某个按钮,系统给事件跨进程传递给应用进程,调到了应用进程的Binder线程池,然后再唤醒主线程

1
1
海怪
你的意思是说用户点击按钮的行为不是发生在主线程当中的吗?
2020-04-01
共1条回复

剖析Framework面试 冲击Android高级职位

一手助力冲刺Android高级职位,一手把握系统底层原理,理清面试思路,提升技术段位

1406 学习 · 187 问题

查看课程