关于主线程Looper循环因为消息为空后,阻塞住唤醒问题
来源:8-5 主线程进入loop循环了为什么没有ANR?
小旋风_qsh
2019-12-17
老师,有几个场景不太懂,想请教下;
假设场景:
1、如果主线程此时looper循环因为MessageQueue中消息为空而阻塞住了,此时主线程休眠了;如果此时Actitity(可理解为客户端)拿主线程的handler 可以再往队列里再入队一个消息,从而唤醒主线程么?(主线程自己唤醒自己)
2、如果主线程休眠是必须由别的线程唤醒,能举一个关于主线程因为消息为空而休眠,被binder线程唤醒的例子么?
写回答
1回答
-
您好,第一个问题,主线程如果已经休眠了,只能通过别的线程来唤醒了,自己是没法唤醒自己的
第二个问题,比如你点了一个按钮,系统给事件分发到App进程,这就涉及到跨进程通信,主线程被binder线程唤醒了
232020-02-01
相似问题