内存管理

1.回收Bitmap对象

泄露原因:大部分时候,我们只要把图片放在/res/drawable-hdpi目录下,就可以在程序中通过该图片对应的资源ID来获取封装该图片的Drawable对象。但由于手机系统的内存比较小,如果系统不停的去解析、创建Bitmap对象,可能由于前面创建Bitmap所占用的内存还没有回收,而导致程序运行时引发OutOfMemory 错误。
处理方法:Android为Bitmap提供了两个方法来判断它是否已回收,以及强制Bitmap回收自己。

boolean is Recycled():返回该Bitmap对象是否已被回收。

void recycle():强制一个Bitmap对象立即回收自己。

除此之外,如果Android应用需要访问其他存储路径(比如SD卡中)里的图片,都需要借助于BitmapFactory来解析、创建Bitmap对象。

2.自定义的View中,如果有线程或者动画,需要及时停止。
如果有线程或者动画需要停止时,那么onDetachedFormWindow 是一个很好的时机。当包含此View的Activity退出或者当前的View被remove时,View的onDetachedFromWindow方法会被调用,和此方法对应的是onAttachedToWindow,当包含此View的Activity启动时,view 的onAttachedToWindow方法会被调用。同时,当View变得不可见时,我们也需要停止线程或动画,如果不及时处理这种问题,有可能会造成内存泄漏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值