什么是ANR,如何避免它
2018-02-28 00:00
267 查看
ANR,application not response(应用程序无响应).Android的应用程序完全运行在一个独立的线程(main)里,这就意味着,任何在主线程运行的,需要消耗大量时间的操作都会引发ANR。
一般情况下,
1. 在Activity的各个生命周期里,执行操作超过5秒无响应;
2. 在Broadcast Receiver里超过10秒;
3. 在service里超过20秒。
都会引发ANR。
Broadcast Receiver要执行耗时操作,可以启动一个service,将耗时操作交给service来执行 。因为它的生命周期比较短。如果要响应Intent广播时,如果需要向用户展示什么,可以使用Notification Manager来实现。
一般情况下,
1. 在Activity的各个生命周期里,执行操作超过5秒无响应;
2. 在Broadcast Receiver里超过10秒;
3. 在service里超过20秒。
都会引发ANR。
如何避免?
不要再主线程里做耗时操作。如果需要耗时操作,可以开启一个子线程来运行。Broadcast Receiver要执行耗时操作,可以启动一个service,将耗时操作交给service来执行 。因为它的生命周期比较短。如果要响应Intent广播时,如果需要向用户展示什么,可以使用Notification Manager来实现。
相关文章推荐
- 什么是ANR,如何避免?
- 什么是ANR,如何避免?
- 什么是ANR 如何避免它?
- 什么是ANR 如何避免它?
- Android ANR是什么?如何避免ANR
- android什么是ANR,如何定位和避免
- 什么是ANR 如何避免
- Android面试(二)ListView优化,ListView和Scrollview冲突问题,mvc模式,什么是ANR 如何避免它?
- [转]什么是ANR 如何避免它?
- Android中什么是ANR,如何应对或者如何避免它
- 什么是ANR 如何避免
- 什么是ANR 如何避免它
- 什么是ANR,如何避免ANR
- 什么是ANR?如何避免ANR?
- 什么是ANR 如何避免它?
- 什么是 ANR 如何避免它?
- 什么是ANR 如何避免它?
- Android 面试题笔记-------什么事ANR,如何避免这种情况的发生?
- 什么是ANR 如何避免它?
- Android—什么是ANR 如何避免它?