标签:
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.成员变量 写起来麻烦!
标签:
原文地址:http://www.cnblogs.com/seanzhoutao/p/5615050.html