ANR定位和修正 [复制链接]

2019-9-2 10:15
Hamals 阅读:380 评论:0 赞:0
Tag:  ANR

如果开发机器上出现问题,我们可以通过查看/data/anr/traces.txt即可,最新的ANR信息在最开始部分。

  • 主线程被IO操作(从4.0之后网络IO不允许在主线程中)阻塞。

  • 主线程中存在耗时的计算

  • 主线程中错误的操作,比如Thread.wait或者Thread.sleep等 Android系统会监控程序的响应状况,一旦出现下面两种情况,则弹出ANR对话框

  • 应用在5秒内未响应用户的输入?#24405;?#22914;按键或者触摸)

  • BroadcastReceiver未在10秒内完?#19978;?#20851;的处理

  • Service在特定的时间内无法处理完成 20秒

  • 使用AsyncTask处理耗时IO操作。

  • 使用Thread或者HandlerThread时,调用Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)设置优先级,否则仍然会降低程序响应,因为默认Thread的优先级和主线程相同。

  • 使用Handler处理工作线程结果,而不是使用Thread.wait()或者Thread.sleep()来阻塞主线程。

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

  • BroadcastReceiver中onReceive代码也要尽量减少耗时,建议使用IntentService处理。


我来说两句
您需要登录后才可以评论 登录 | 立即注册
facelist
所有评论(0)
领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:[email protected]

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )

阿拉斯加垂钓APP下载
国民彩票手机版app 麻将中赖子是什么 7m网球比分直播 重庆时时走势图彩经 08年上证指数图 下载516棋牌中心 金融帝国二 卖百货能赚钱吗 八闽福建麻将辅助外挂下载 福建十一选五 内蒙古快三预测号码推荐 江苏十一选五怎么下载 福建体彩31选7走势图? 极速11选5规律 重庆时时彩开奖 江苏快三下载 七星彩开奖公告