美文网首页
(二十四)ANR异常面试问题

(二十四)ANR异常面试问题

作者: lkmc2 | 来源:发表于2017-08-17 18:04 被阅读113次

一、什么是ANR

ANR是Application Not Responding(程序未响应),系统回弹出对话框让用户进行等待或者关闭程序。一个Activity执行时间超过5s,一个Service执行时间超过10s,都会出现ANR。

二、造成ANR的主要原因

1.主线程中被耗时IO操作阻塞(从Android 4.0之后网络IO不允许在主线程中)。

2.主线程中存在耗时的计算。

Android中的哪些操作是在主线程呢?

1.Activity的所有生命周期都是执行在主线程的。

2.Service默认是执行在主线程的。

3.BroadcastReceiver的onReceive回调是执行在主线程的。

4.没有使用子线程的Looper的Handler的handleMessage,post(Runnable)是执行在主线程的。

5.AsyncTask的回调方法除了doInBackground,其他都是执行在主线程。

三、如何解决ANR

1.使用AsyncTask处理耗时IO操作。

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

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

4.Activity的onCreate和onResume回调中尽量避免耗时的代码。

相关文章

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

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

  • (二十四)ANR异常面试问题

    一、什么是ANR ANR是Application Not Responding(程序未响应),系统回弹出对话框让用...

  • ANR异常问题

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

  • android异常与性能优化相关

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

  • bugreport辅助分析anr问题

    背景:程序运行过程中,可能会出现crash/ANR无响应等问题,一般出现ANR问题时,系统会捕捉异常并写到/dat...

  • 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),一般会弹出无响应提示对...

网友评论

      本文标题:(二十四)ANR异常面试问题

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