美文网首页
Android中为什么主线程不会因为Looper.loop()里

Android中为什么主线程不会因为Looper.loop()里

作者: leftcoding | 来源:发表于2019-07-15 17:03 被阅读0次

首先,先来了解下,android 应用的程序入口。我们都知道,应用的入口是 ActivityThread 文件中的 main 方法,截图如下:

ActivityThread.java

我们可以看到,最后调用 Looper.loop(),也就是说,其实我们的应用其实就是运行在死循环中的。如果不运行死循环中,那么程序运行完,就结束了。

接下来,说下为什么阻塞跟程序卡死(ARN)

阻塞,应用死循环,没有输入事件,MsgQ为空,Looper空闲状态,线程进入阻塞,释放CPU执行权,等待唤醒。
卡死(ARN),是指消息里有超时操作,导致应用处理不过来,后续发送的消息。所以,阻塞跟应用卡死(ARN)没有必然的联系。

相关文章

网友评论

      本文标题:Android中为什么主线程不会因为Looper.loop()里

      本文链接:https://www.haomeiwen.com/subject/estokctx.html