android Activity调用onDestory后会不会销毁activity里面自定义view的引用的bitmap??
如果不能,怎么样销毁,防止内存泄露!View好像没有ondestory方法!Activity调用onDestory时如果里面有个动画正执行,那个动画如果设置了动画监听器,...
如果不能,怎么样销毁,防止内存泄露!View好像没有 ondestory 方法!
Activity调用onDestory时如果里面有个动画正执行,那个动画如果设置了动画监听器,会不会调用其onAnimationCancel方法! 展开
Activity调用onDestory时如果里面有个动画正执行,那个动画如果设置了动画监听器,会不会调用其onAnimationCancel方法! 展开
6个回答
展开全部
一般而言,回收bitmap内存可以用到以下代码
if(bitmap != null && !bitmap.isRecycled()){ bitmap.recycle(); bitmap = null; } System.gc(); bitmap.recycle()方法用于回收该bitmap所占用的内存,接着将bitmap置空,最后,别忘了用System.gc()调用一下系统的垃圾回收器。
在这里要声明一下,bitmap可以有多个(以为着可以有多个if语句),但System.gc()最好只有一个(所以我将它写在了if语句外),因为System.gc()
每次调用都要将整个内存扫描一遍,因而如果多次调用的话会影响程序运行的速度。为了程序的效率,将它放在了所有回收语句之后。
if(bitmap != null && !bitmap.isRecycled()){ bitmap.recycle(); bitmap = null; } System.gc(); bitmap.recycle()方法用于回收该bitmap所占用的内存,接着将bitmap置空,最后,别忘了用System.gc()调用一下系统的垃圾回收器。
在这里要声明一下,bitmap可以有多个(以为着可以有多个if语句),但System.gc()最好只有一个(所以我将它写在了if语句外),因为System.gc()
每次调用都要将整个内存扫描一遍,因而如果多次调用的话会影响程序运行的速度。为了程序的效率,将它放在了所有回收语句之后。
更多追问追答
追问
关键不知道写在哪将这些代码,这些个bitmap都是在view用的,不是写在activity里的。
追答
你如果不确定是不是某个东西引起了内存溢出,你可以把它和相关代码都注释掉。看看还会不会内存溢出。总之先确定错在哪里。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询