ANR

作者: 微尘_8957 | 来源:发表于2018-09-07 09:36 被阅读8次

    1.activity  5s

    2.广播 10s

    3.主线程耗时操作

    二、产生ANR主要原因?

    1.主线程被Io操作()

    2.主线程存在耗时计算

    3.

    三、android那些操作是在主线程的?

    (1)activity 的所有生命周期

    (2)service 默认执行在主线程,IntentService(划重点) 里面执行耗时操作。

    (3)BroadcastReceiver 的onReceive 回调执行在主线程中

    (4)没有使用子线程的looper的handler的handlerMessage,post(Runnable)是执行在主线程中的

    (5)AsyncTask的回调除了doInBackground其他都执行在主线程

    四、如何解决ANR

    1.使用AsyncTask处理耗时操作

    2.使用Thread或者HandlerThread 提高优先级

    3.使用handler来处理工作线程的耗时任务

    3.activity生命周期中避免耗时操作

    相关文章

      网友评论

      本文标题:ANR

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