主线程负责UI更新,必须循环处理消息,所以必须死循环

主线程在等待消息的过程中并不会占用多少系统资源,它的底层实现类似pipe管道、epoll机制,只有收到消息才会被唤醒然后进行处理

循环本身并不会导致卡死,只有再循环内执行耗时操作会导致消息无法在规定时间内派发完成才会导致卡死

比如在一个消息中执行耗时操作,然后第二个消息触发,主线程检测到第一个消息没有正常派发完成,就会抛出ANR

如果觉得我的文章对你有用,请随意赞赏