关于内存泄露的一点心得

1.尽量避免使用getApplicationContext的方式去解决内存泄露,因为getApplicationContext的方式会将当前类的生命周期延长至整个应用的生命周期,致使当前类以及与其有关系的类不能被GC,不利于内存优化,当然,再没有更加好的办法的前提下,可以使用此方式解决内存泄露。

2.有关Volly框架使用后造成的内存泄露:  推荐网址:http://1029457926.iteye.com/blog/2264158
1)为什么会造成内存泄露:

  因为我们的Volley框架在每次进行网络请求时,都会去调用两个回调函数,一个正确的回调mListener和一个错误的回调mErrorListener,如果我们在Activity结束的时候没有去关闭这两个listener,就有可能导致内存泄露。


2)如何去解决?
   首先Volley框架是在application里去进行网络请求的,所以我们同样可以在application里提供一个取消请求的方法;接着我们需要去关闭mListener和mErrorListener,mListener需要我们在Request的子类下重写finish的方法去关闭,mErrorListener需要我们去Request的源码里去关闭,具体实现方式可以查看我的推荐网址。
3.有关使用谷歌 “玩——服务——广告”而引起的内存泄露  推荐网址:https://translate.googleusercontent.com/translate_c?depth=1&hl=zh-CN&prev=search&rurl=translate.google.com.hk&sl=en&u=http://stackoverflow.com/questions/9558708/admob-memory-leak-avoiding-by-using-empty-activity&usg=ALkJrhjQXq6naaL02f27dwbIRpdqplSepg //解决AdView泄露
(ps:这个网址需要使用谷歌才能打开)
    1)为什么会造成内存泄露:
    因为我们的AdView一直持有引用旧的活动
    2)如何去解决?
        mAdView.setAdListener(null);  //取消监听
        mBottomAD.removeAllViews();      //最重要的 将当前承载广告位的layout里的活动清除
        mAdView.destroy();     //销毁mAdView
        (ps:经本人测试:1,3条可以不加,但第二条一定要有,,个人建议:还是都加上比较好)
        
  4.使用Glide引发的内存泄露
   
   Glide是一个强大的图片缓存库,关于这个的内存泄露问题,本人目前还没有找到好的解决办法,希望哪位道友知道的,能指点一二,非常感谢
    
  我将一直会去研究有关内存优化的问题,希望有兴趣的人,大家可以一起交流,谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值