问题描述:在项目中使用Bitmap展示图片,app启动时加载没有问题,但是在重复打开关闭页面多次后,图片不展示了,通过调试发现BitmaoFactory.decodeFile()方法解析位图返回了一个空值,能确定传入的参数没有任何问题。
出现原因:BItmap资源占用内存较大,在退出页面后其占用内存未被释放,任然占据大量内存,重复打开页面多次每次都会创建新的bitmap对象,内存很快被占满,导致内存不足,解析位图失败。
我的解决方法:在退出界面时,主动调用bitmap.recycle() 方法释放bitmap的内存占用。
private fun clearAdapter(){
val faceList = mAdapter?.allItems
// 位图资源占用内存较大,主动释内存
faceList?.forEach { it ->
it.bitmap?.recycle()
}
}