Android内存泄露原因
来源:互联网 发布:网络平台管理办法 编辑:程序博客网 时间:2024/05/18 22:52
部分内容来源:http://www.eoeandroid.com/thread-334686-1-1.html
常见内存泄露原因
Context对象泄漏
1、如果一个类持有Context对象的强引用,就需要检查其生存周期是否比Context对象更长。否则就可能发生Context泄漏。
2、View持有其创建所在Context对象的引用,如果将View对象传递给其它生存周期比View所在Context更长的强引用,就可能会引起内存泄漏。
例如View#setTag(int, Object)的内存泄漏https://code.google.com/p/android/issues/detail?id=18273
3、把Context对象赋给static变量。
避免Context对象泄漏Checklist
1、检查所有持有对Context对象强引用的对象的生命周期是否超出其所持有的Context对象的生命周期。
2、检查有没有把View传出到View所在Context之外的地方,如果有的话就需要检查生命周期。
3、工具类中最好不要有Context成员变量,尽量在调用函数时直接通过调用参数传入。如果必须有Context成员变量时,可以考虑使用WeakReference来引用Context对象。
4、View持有其创建所在Context对象的引用,如果将View对象传递给其它生存周期比View所在Context更长的强引用,就可能会引起内存泄漏。
5、 检查把Context或者View对象赋给static变量的地方,看是否有Context泄漏。
6、检查所有把View放入容器类的地方(特别是static容器类),看是否有内存泄漏。7、使用WeakHashMap也需要注意有没有value-key的引用。
7、尽量使用ApplicationContext。
- Android内存泄露原因
- Android内存泄露原因
- android内存泄露的原因
- android内存泄露的原因
- Android内存泄露的原因
- Android内存泄露的原因
- Android内存泄露的原因
- Android内存泄露分析之-内存泄露的原因
- android中内存泄露的原因
- Android中内存泄露的原因分析:
- android 内存泄露原因与解决办法
- Android内存泄露的可能原因
- android 内存泄露产生原因分析
- android 内存泄露的8个原因
- android开发中内存泄露的原因
- 内存泄露的原因
- 内存泄露的原因
- 。net内存泄露原因
- 安卓Web Service实现天气预报功能
- 关于App进入background状态
- 全面解读通知消息WM_NOTIFY
- Online Redo Log File不小心剔除了,现在每次startup都ORA-03113: end-of-file on…
- DAO模式
- Android内存泄露原因
- js获取当前时间
- linux上emacs+slime+sbcl 环境搭建
- Oracle基础知识(二十一) - with as 的使用
- 生活物联网如何“接地气”,走进寻常百姓家
- 写高质量代码C#
- 设置UITextField和UITextView的光标颜色
- JAVA多线程和并发基础面试题
- Racket- list