止泄药(LeakCanray)——Android 内存泄露

参考:
LeakCanray原理
https://mp.weixin.qq.com/s/PgY_ZVsqLOr4-xMZNBSVSA
https://www.jianshu.com/p/49239eac7a76

快奔溃了,弄了三天内存泄露了还是没有解决完,总结一下解决了的吧。

  1. Stack<Activity> activityStack代码里面每个Activity都添加了这个栈,却没有退栈所以Activity一直被挟持,一直泄。
    解决方案:每个Activity的 onDestroy里面使用这个finishActivity(this) 进行释放Activity
   public void finishActivity(Activity activity) {
        if (activity != null) {
            activityStack.remove(activity);
            activity.finish();
            activity = null;
        }
    }

2.有个单例的PreferenceHelper,里面的context是静态的,一直挟持所用到的Activity,真是一直爽啊,所以把传进去的context.getApplicationContext()进行解决,所有静态的context都使用context.getApplicationContext()进行优化即可。

3.fragement的泄露还在进行中。。。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容