【原创干货】内存泄漏分析常见例子
本帖最后由 ZZP 于 2014-10-25 11:16 编辑下面是我在对Hello进行内存泄漏分析时发现总结的一些常见实例!希望大家平时开发时留意一下!特别是在使用内部类或者匿名内部类时特别注意一下
实例1: View view1;//某实例view
View view2’//某实例view
View view3;//某实例view
View3.getViewTreeObserver().addOnGlobalLayoutListener(newOnGlobalLayoutListene()
{
@Override
public void onGlobalLayout() {
//在这里会因为view1,view2被OnGlobalLayoutListener所引用(本质是AttachInfo被引用)使得宿主fragment或者activity无法gc而导致内存泄漏
int width = view1.getWidth();
int width = view2.getWidth();
}
});结果是频繁进入个人资料页是导致内存泄漏
实例2、把fragment注册到LinkdLet.addConnStatListener()中,在onDestrory中没有调用LinkdLet. removeConnStatListener()导致退出进入再推出再进入频繁操作而导致内存泄漏;
实例3、GiftLetl. regNewMsgHandler后,在退出fragment后虽然手动设为null,但是因为原来那个已经设置另一进程而导致内存泄漏实例4、内部类中使用宿主类变量(截图中是ListView的Adapter),而该变量又引用这MainActivity导致内存泄漏;如引用链
nemo211楼主好,你的内容是不是没写完,请补充完整。
页:
[1]