有关内存泄露

来源:互联网 发布:java i18n 国际化 编辑:程序博客网 时间:2024/05/16 04:10

分析内存泄露:
工具:DDMS +MAT(memory analyzer)
下载地址: http://www.eclipse.org/mat/downloads.php
常见情况:
1. ListView复用缓存对象
2. 小心使用Context时:(小心static)
Activity和Service的Context的声明周期属于他们的单个实例。
Application的Context的生命周期是整个应用程序。
3. Android Handler 避免内存泄漏的用法总结
在Activity或者Fragment中的onDestroy中调用handler.removeCallbacksAndMessages(null)就可以了,不应该改成软引用。

强引用(Strong Reference) 默认引用。如果一个对象具有强引用,垃圾回收器绝不会回收它。在内存空 间不足时,Java虚拟机宁愿抛出OutOfMemory的错误,使程序异常终止,也不会强引用的对象来解决内存不足问题。
软引用(SoftReference) 如果内存空间足够,垃圾回收器就不会回收它,如果内存空间不足了,就会回收这些对象的内存。
弱引用(WeakReference) 在垃圾回收器一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。
虚引用(PhantomReference) 如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收。

0 0
原创粉丝点击