anr异常

作者: 萝卜枣 | 来源:发表于2018-04-20 08:47 被阅读0次

1、什么是anr
Application Not Responding
Activity最长的执行时间是5s,广播最长为10s,超出这个时间,就容易造成anr。
实际上就是应用程序无响应的对话框,主要原因是在主线程中做了耗时操作。

2、产生主要原因
应用程序的响应性是由Activity Manager和WindowManager系统服务监视的。
1)主线程被IO操作阻塞
2)主线程中存在耗时操作
a. Activity的所有生命周期回调都是执行在主线程的
b. Service默认是执行在主线程的
c. Broadcast Receiver的Receiver回调是执行在主线程的
d. 没有使用子线程的Looper的Handler的handleMessage,post(Runnable)是执行在主线程的。
e. AsyncTask的回调中除了doInBackground,其他都是执行在主线程

3、如何解决anr
1)使用AsyncTask处理耗时IO操作
2)使用Thread或者HandlerThread提高优先级
3)使用Handler来处理工作线程的耗时任务
4)Activity的onCreate和onResume回调中尽量避免耗时的代码

相关文章

  • Android 中 ANR 异常

    What is ANR? ANR 即 Application Not Responding,程序无响应异常。在 A...

  • anr异常

    1、什么是anrApplication Not RespondingActivity最长的执行时间是5s,广播最长...

  • 异常——ANR

    什么是ANR异常 ANR即Application Not Responding程序无响应,主要有以下三种情况会报A...

  • ANR异常

    当我们在主线程中做耗时的动作时,当时间超过一定期限就会引起app奔溃,无响应的情况,这就是ANR,一般情况下,Ac...

  • ANR异常

    1 ANR定义 ANR即应用无响应(application not responding),一般会弹出无响应提示对...

  • android异常与性能优化相关

    1,ANR异常问题 1,什么是ANR Application Not Responding5s Activity ...

  • BAT 大厂Android研发岗必刷真题:Android异常与性

    今天来讲一讲在面试中碰到的Android异常与性能优化相关问题: 1、anr异常面试问题讲解 a) 什么是anr...

  • ANR异常问题

    1.什么是ANR Application Not Responsing 应用程序无响应的对话框,在主线程做了耗时的...

  • 安卓基础

    ANR异常 application not responding,Activity和Service是5秒,Broa...

  • FileObserver捕获ANR异常

    Android中捕获运行时异常,可以通过继承UncaughtExceptionHandler来重写uncaught...

网友评论

      本文标题:anr异常

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