BATJ30道经典常见Android 高级面试题及答案( 九 )
2). BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成
3). ServiceTimeout(20 seconds) --小概率类型 Service在特定的时间内无法处理完成
为什么会超时:事件没有机会处理 & 事件处理超时
怎么避免ANR
ANR的关键
是处理超时 , 所以应该避免在UI线程 , BroadcastReceiver 还有service主线程中 , 处理复杂的逻辑和计算
而交给work thread操作 。
1)避免在activity里面做耗时操作 , oncreate & onresume
2)避免在onReceiver里面做过多操作
3)避免在Intent Receiver里启动一个Activity , 因为它会创建一个新的画面 , 并从当前用户正在运行的程序上抢夺焦点 。
4)尽量使用handler来处理UI thread & workthread的交互 。
推荐阅读
- 孙尚香|孙尚香异界灵契皮肤上线,而玩好他需要解决5大常见操作问题
- 仙剑2|经典游戏《仙剑2》苏媚的梦蛇才是最大BUG,效果叠加一招带走千叶
- 魔兽世界|魔兽世界:“时空漫游”将改版,增加野外内容,回归经典
- 复古传奇|复古传奇1.85版本还原经典 人气火爆 超高爆率 等你来战!
- |大话2经典版:这两位神壕可以说是游戏里暴力美学“典范”的存在了!
- 射击游戏|可能被你忽略了,这十款才是最经典的第三人称射击游戏
- 魔兽世界|魔兽世界各个种族NPC经典台词有哪些
- 吃鸡游戏|LOL手游:世界赛经典重现!“复仇之战”圆RNG的S7鸟巢遗憾
- 手机游戏|冰雪传世群英版手游:经典三职业元神可以免费获取?
- 明日之后|热血传奇:最常见的三大PK原因,快来看看有没有你当年PK的原因