Android ANR:Application Not Responding详解,2021年Android开发陷入饱和

本文详细介绍了Android ANR(Application Not Responding)错误,包括四种类型:KeyDispatchTimeout、BroadcastTimeout、ServiceTimeout和ContentProviderTimeout。ANR通常由于主线程阻塞、耗时操作等原因引起。为避免ANR,应使用异步任务处理IO,设置线程优先级,避免阻塞主线程。若已发生ANR,可通过分析日志定位问题。高级工程师应全面掌握Android技术体系,以应对不断变化的开发需求。
摘要由CSDN通过智能技术生成

ANR,全称为Application Not Responding,也就是应用程序无响应。
如果 Android 应用的界面线程处于阻塞状态的时间过长,就会触发“应用无响应”(ANR) 的错误。此时系统会向用户显示一个对话框,ANR 对话框会为用户提供强行退出应用的选项。

二、ANR的四种类型

在Android系统中,应用程序的响应由Activity ManagerWindow Manager两个系统服务所监控。通常情况下,应用出现如下四类情况时,系统将报ANR:

  • KeyDispatchTimeout(最常见类型)—— input事件5s内未处理完成导致ANR发生,主要为按键和触摸事件;

日志关键字:InputDispatching Timeout

  • BroadcastTimeout:—— BroadcastReceiver在特定时间内未处理完成导致ANR发生(限制:前台广播10s;后台广播60s);

日志关键字:Timeout of broadcast BroadcastRecord

  • ServiceTimeout —— Service在特定的时间内未处理完成导致ANR发生。(限制
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值