美文网首页面试题
Android面试题总结——Android部分

Android面试题总结——Android部分

作者: wayneinyz | 来源:发表于2017-09-11 22:37 被阅读9次

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

相关文章

网友评论

    本文标题:Android面试题总结——Android部分

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