Re: [問題] viewPager Imageview OOM

看板AndroidDev作者 (中壢市的小智)時間11年前 (2014/06/10 22:16), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串3/3 (看更多)
直接回一篇好了 在這邊會發生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

06/11 11:03, , 1F
看到這系列文章不經又想起 out of memory 永遠的痛XD
06/11 11:03, 1F

06/11 11:11, , 2F
謝謝 s大,今天突然想到原來是layout沒有釋放掉
06/11 11:11, 2F

06/11 11:11, , 3F
完全跟s大講的一樣 通靈成功
06/11 11:11, 3F

06/11 11:23, , 4F
我是使用 viewpager+fragment,是放的時候只做了bitmap
06/11 11:23, 4F

06/11 11:24, , 5F
忘記釋放 layout..
06/11 11:24, 5F
文章代碼(AID): #1JbnCr2c (AndroidDev)
文章代碼(AID): #1JbnCr2c (AndroidDev)