美文网首页
在Activity中的onCreate方法中执行死循环会造成AN

在Activity中的onCreate方法中执行死循环会造成AN

作者: ModestStorm | 来源:发表于2020-06-10 22:45 被阅读0次
    在Activity中的onCreate方法中执行死循环会造成ANR吗?

    要解答这个问题首先要说下ANR产生的四个条件:
    1.service:前台service的onCreate方法执行时间超过20秒,后台service的onCreate方法执行时间超过200秒会造成ANR.

    2.BroadCastReceiver:前台广播的onReceive执行时间超过10秒,后台广播时间超过60秒会造成ANR.

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_SHUTDOWN);
    intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);//该语句为设置为前台广播
    context.sendBroadcast(intent);
    

    3.ContentProvider:publish在10s内没有响应出现ANR

    4.input dispating timeout:5s内没有响应键盘输入,触摸屏幕等事件出现ANR。

    所以可以看到Activity的生命周期回调并不在上述四种ANR的情景里,所以在Activity的onCreate方法中执行死循环并不会造成ANR,只不过死循环卡住了主线程,如果系统再有这四种情形触发就会触发ANR.

    相关文章

      网友评论

          本文标题:在Activity中的onCreate方法中执行死循环会造成AN

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