程序员Android开发

ANR

2018-09-07  本文已影响8人  微尘_8957

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

上一篇下一篇

猜你喜欢

热点阅读