首页 / 数码智能 / 正文

android内存泄露的根本原因

时间:2024-10-02 11:01:02

Android性能优化——内存泄漏根本原因

常见内存泄露问题

1.资源性对象未关闭。资源性对象(如Cursor、File等一些Closeable对象),它们往往使用了缓冲区,缓冲区不仅在JVM内,JVM之外也有。如果仅仅把变量设置为null,而不关闭它们,缓冲区得不到释放,往往造成内存泄露。

2.注册对象未注销。订阅者模式中,如果注册对象不再使用时,未及时注销,会导致订阅者列表中维持这对象的引用,阻止垃圾回收,导致内存泄露。常见场景:动态注册BroadcastReceiver,注册PhoneStateListener,注册EventBus等等,

3.非静态内部类的静态实例。非静态内部类持有外部类实例的引用,若非静态内部类的实例是静态的,便拥有app存活期整个生命周期,长期持有外部类的引用,阻止外部类实例被回收。

《android内存泄露的根本原因》不代表本网站观点,如有侵权请联系我们删除

点击排行

战略网  版权所有 粤ICP备2021127029号

联系我们 关于我们 版权申明