在 Android 开发中,稍有不慎就容易引起内存泄漏,我们经常听到内存泄漏,但是什么是内存泄漏呢?
内存泄漏:无用对象持续占用内存使得内存资源得不到及时释放,导致内存资源被浪费。
可以看到内存泄漏是由于没有及时释放内存资源造成的,因此在不经意间我们就有可能造成了内存泄露。本文我们就来汇总下平时的编码过程中容易发生内存泄漏的地方以及其解决措施。
1. 集合类造成的泄露
2. 单例造成的内存泄漏
3. 非静态内部类创建静态实例造成的内存泄漏
4. 匿名内部类
5. Handler 造成的内存泄漏
6. 资源未关闭造成的内存泄漏
这一类是最典型的内存泄漏现象。如:listener监听器
总结
内存泄漏的发生场景可以为如下一句话:** 长生命周期的对象持有短生命周期对象的引用且该引用不能被回收。 **
保持对对象生命周期的敏感,特别注意单例、静态对象、全局性集合等的生命周期。