我有一个用户评论说,在我的应用程序中查看一堆图像后,它崩溃了(他认为这是由于内存不足错误)。我有以下相关代码:
int themeID = mNav[mPos];
String icon = getThemeData(DbAdapter.KEY_ICON, themeID);
ImageView viewer = (ImageView)findViewById(R.id.viewer);
Bitmap bMap = null;
try {
bMap = getJPG(icon + ".jpg");
} catch (IOException e) {
e.printStackTrace();
}
viewer.setImageBitmap(bMap);
当用户在图像之间翻转时,它会重新运行。从这里我看到你应该在位图上调用 recycle() 。设置图像后是否需要在 bMap 上调用它?或者在设置下一个之前有什么方法可以将它从 viwer 中拉出来?
根据回收的文档(如果我在 bMap 上调用它),我似乎不需要使用它:这是一个高级调用,通常不需要调用,因为正常的 GC 进程会在出现时释放此内存不再引用此位图。