当一个界面里有很多张图片,而且图片加载切换很频繁,一个很好的机制可以保证整个功能流畅而无问题,在对于新手来说就头疼了,这时,ImageView所占的内存释放就显得很重要了。
ImageView释放内存的方法很简单,获取imageView对应的drawable,在获取其中的bitmap,
le();
bitmap =null;
而在开发过中,ImageView往往是放在listView,gridView里面。这时,简单的执行上面两行代码会发现,app占用的内存并没有释放掉
而且每一次进入界面内存的占用就增加一次,最后oop。。。。。。
那么,什么原因造成释放资源后,内存还是被占用而无法回收呢?
本人在多次的尝试过程中发现:
le();
bitmap =null;
ifycation();执行完之后,被占用的内存有很大一部分被释放了。虽然每次再进入界面后app 占用内存还是会有所增加,但除非是严格的压力测试,否则不会出现oom。有时,内存还会被释放的很干净。初步臆测是组件的缓存机制造成ImageView内存不能很好的释放。
本文发布于:2024-02-02 08:18:59,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170683314042530.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |