码迷,mamicode.com
首页 > 其他好文 > 详细

Andoid内存泄露

时间:2016-06-24 18:54:13      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

1 android 内存泄露是因为分配的内存回收失败 

public static LocalHelper getInstance(Context context) {
if (instance==null){
instance = new LocalHelper(context);
}
return instance;
}

如果在contenx 传一个Activity 那么在Acitivty finish之后是无法对activity 进行回收的
因为 静态实例会对activity继续引用, 这时候 内存无法GC 会产生oom 和 内存泄露

2 Handler 引起的内存泄露

Handler 的使用造成的内存泄漏问题应该说是最为常见了

,我们知道 Handler、Message 和 MessageQueue 都是相互关联在一起的

 Handler 发送的 Message 尚未被处理,则该 Message 及发送它的 Handler 对象将被线程 MessageQueue 一直持有。

由于 Handler 属于 TLS(Thread Local Storage) 变量, 生命周期和 Activity 是不一致的。

因此这种实现方式一般很难保证跟 View 或者 Activity 的生命周期保持一致,故很容易导致无法正确释放。

 建议使用弱引用 不过会有activity.成员变量 写起来麻烦!

 

Andoid内存泄露

标签:

原文地址:http://www.cnblogs.com/seanzhoutao/p/5615050.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!