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生命周期中避免耗时操作
网友评论