工作生活

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

2019-07-03  本文已影响0人  AlphaGuo

参考:
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的泄露还在进行中。。。

上一篇下一篇

猜你喜欢

热点阅读