作者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://www.ptt.cc/bbs/AndroidDev/M.1402409781.A.0A6.html
推 issuemylove:看到這系列文章不經又想起 out of memory 永遠的痛XD 06/11 11:03
推 fake01:謝謝 s大,今天突然想到原來是layout沒有釋放掉 06/11 11:11
→ fake01:完全跟s大講的一樣 通靈成功 06/11 11:11
→ fake01:我是使用 viewpager+fragment,是放的時候只做了bitmap 06/11 11:23
→ fake01:忘記釋放 layout.. 06/11 11:24