请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

2回答

风语 2020-04-06 14:02:22

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

1 回复 有任何疑惑可以回复我~
风语 2020-03-31 23:33:54

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

1 回复 有任何疑惑可以回复我~
  • 提问者 海怪 #1
    你的意思是说用户点击按钮的行为不是发生在主线程当中的吗?
    回复 有任何疑惑可以回复我~ 2020-04-01 00:44:52
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信