直接回一篇好了
在这边会发生OOM,其实是因为viewpager的页面资源不会被释放
从你的例子来看,你每多读一张Bitmap,就多占一份内存
你虽然有在destroyitem时,去做释放的动作,
但很可惜当你在一直滑动,读取新的页面时,
旧的页面并不会立即被释放,然后也就OOM。
简单的解决方法是,不要直接用viewpager+view
改用viewpager+fragment
然后当fragment进入 onpause时,立即释放Bitmap,
更好一点的做法,用cache管理Bitmap,
onpause时,取消view跟Bitmap的关联,也就是设为null
然后在cache里面判定是否需要释放Bitmap