Android读书笔记(一)Activity退出时释放内存

最近一直在写自己的音乐播放器,作为菜鸟来说着实有些东西没弄明白,这时候习惯性的百度,然后耗费大量的时间来检索信息,编写代码效率极低。因此,希望能够通过自己写博客来记录一下Android学习过程中遇到的问题以及基本知识点的总结,为日后进一步的学习和工作打下基础。废话不多说,让我开始吧。

今天下午一直在调试Activity退出后内存没有被释放,再次进入后会重新创建一些对象导致耗费的内存增加,具体的代码主要是为了实现通过BindService获取音乐播放进度,并根据进度更新音乐主UI上进度条和歌词显示,在这里我采用了Timer和TimerTask来实现不间断的更新,但是由于对Android的多线程理解不够深入导致在Activity终止后,并没有及时的将Timer取消掉,以至于原有的Activity占用的内存不能被JavaGC回收掉,导致每次退出后再进入Activity都会产生内存泄漏问题。经过自己的实验,在Activity中的onDestory() 方法中调用mTimer.cancle();即可解决问题,同时在onDestory() 方法中还需要调用unbindService(sc)来解除绑定,以及handler.removeCallbacks(runable);实现handler的终止。从而极大的改善的应用内存问题 同时附上释放ImageView 、TextView所占用的资源

 private void releaseImageView(ImageView imageView) {
        Drawable d = imageView.getDrawable();
        if (d != null)
            d.setCallback(null);
        imageView.setImageDrawable(null);
        imageView.setBackgroundDrawable(null);
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值