Android面试题总结——Android部分

ANR相关问题

1. 什么是ANR?

Application Not Responding : 应用程序无响应
如果一个应用无法响应用户的输入,系统就会弹出一个 ANR 对话框。

2. 什么导致了ANR?

通常,如果应用无法响应用户的输入,系统就会发生 ANR。例如:

  • 应用在 UI 线程中被I/O 操作(通常是网络请求)阻塞
  • 应用在 UI 线程中存在耗时操作(如计算等)

在 Android 系统中,应用的响应受到 Activity Manager 和 Window Manager 这两个系统服务的监控。一旦应用出现以下两种情况,系统就会弹出 ANR 对话框:

  • 应用在5秒内未响应用户的输入事件(如按键或触摸事件)
  • BroadcastReceiver 未在10秒内完成相关的执行

3. 如何避免ANR?

基本思路:在UI线程中,做的工作越少越好。耗时操作(如网络请求、数据库操作或计算密集型操作)应当在工作线程中完成。

  • 使用 AsyncTask
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,239评论 25 709
  • 所谓,君子性非异也,善假于物也!~ 那么,本文意在给大家提供快速、全面、高效的面试解决方案; 为大家节约寻找面试、...
    骑小猪看流星阅读 9,563评论 13 100
  • 面试题总结 通用 安卓学习途径, 寻找资料学习的博客网站 AndroidStudio使用, 插件使用 安卓和苹果的...
    JingBeibei阅读 5,726评论 2 21
  • 前几天整理了Java面试题集合,今天再来整理下Android相关的面试题集合.如果你希望能得到最新的消息,可以关注...
    Boyko阅读 9,275评论 8 135
  • 我土肥圆,我有错? 一张好看的脸,可以为你打开 另一张不怎么好看的脸无法打开的大门。 蔡康永竟直接说, 这已经不是...
    豆饼妹儿阅读 3,188评论 0 1

友情链接更多精彩内容