止泄药(LeakCanray)——Android 内存泄露
2019-07-03 本文已影响0人
AlphaGuo
参考:
LeakCanray原理
https://mp.weixin.qq.com/s/PgY_ZVsqLOr4-xMZNBSVSA
https://www.jianshu.com/p/49239eac7a76
快奔溃了,弄了三天内存泄露了还是没有解决完,总结一下解决了的吧。
- 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的泄露还在进行中。。。