即使在我的应用程序中消除了所有位图后,它们仍然出现在内存分析器中。(见下面的屏幕截图)请你帮我理解为什么它们仍然被列出并帮助我最终删除它们吗?我确定没有位图,因为我还删除了位图导入。
代替创建位图,我现在从 Uri 创建图像,如下面的代码所示。这种方法会生成位图吗?
try {
InputStream inputStream = getContentResolver().openInputStream(imageURI);
imageDrawable = Drawable.createFromStream(inputStream, imageURI.toString() );
} catch (FileNotFoundException e) {
imageDrawable = getResources().getDrawable(R.drawable.default_image);
}
仅供参考,我消除位图的原因是因为它们似乎导致内存不足崩溃。即使在仔细遵循关于如何减小位图大小(inSampleSize、bitmap.recycle() 等)的 SO 指导之后,应用程序也会在每次启动时因 OOM 而崩溃。我很生气,决定消除位图。但是,就像不会搬出去的孩子一样,他们似乎仍然在缠着我。