特牛网址导航

looper阻塞为什么不会造成ANR?_loopermessagequeue的中没有消息的时候为什么不会anr_梦否的博客-CSDN博客

网友收藏
文章浏览阅读1.3k次。我们都知道真正会卡死主线程的操作是在回调方法onCreate/onStart/onResume等操作时间过长,会导致掉帧,甚至发生ANR,looper.loop本身不会导致应用卡死。最开始Android的入口ActivityThread里面的main方法,在这个方法中使用Looper.prepareMainLooper();,而在这个方法中会初始化对应的Looper,MessageQueue等对象,所以我们在主线程中才可以默认使用Handler。从源码我们知道loop()的方法,是一个for (;;)的_loopermessagequeue的中没有消息的时候为什么不会anr