看板 AndroidDev 關於我們 聯絡資訊
直接回一篇好了 在這邊會發生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