作者sdyy (中坜市的小智)
看板AndroidDev
标题Re: [问题] viewPager Imageview OOM
时间Tue Jun 10 22:16:18 2014
直接回一篇好了
在这边会发生OOM,其实是因为viewpager的页面资源不会被释放
从你的例子来看,你每多读一张Bitmap,就多占一份记忆体
你虽然有在destroyitem时,去做释放的动作,
但很可惜当你在一直滑动,读取新的页面时,
旧的页面并不会立即被释放,然後也就OOM。
简单的解决方法是,不要直接用viewpager+view
改用viewpager+fragment
然後当fragment进入 onpause时,立即释放Bitmap,
更好一点的做法,用cache管理Bitmap,
onpause时,取消view跟Bitmap的关联,也就是设为null
然後在cache里面判定是否需要释放Bitmap
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.231.170.81
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1402409781.A.0A6.html
1F:推 issuemylove:看到这系列文章不经又想起 out of memory 永远的痛XD 06/11 11:03
2F:推 fake01:谢谢 s大,今天突然想到原来是layout没有释放掉 06/11 11:11
3F:→ fake01:完全跟s大讲的一样 通灵成功 06/11 11:11
4F:→ fake01:我是使用 viewpager+fragment,是放的时候只做了bitmap 06/11 11:23
5F:→ fake01:忘记释放 layout.. 06/11 11:24