在我的应用程序主屏幕加载几次后,我收到了 OutOfMemoryError 异常抛出。该应用程序加载有关某个位置的数据和背景图像。有几个选项可供选择,在选择了 5-6 个不同的位置后,堆超过 192 MB,我得到了错误。我认为问题出在我对位图的使用不当。
我的代码很长而且不清楚,所以我会举一个例子,希望有人能帮助我,因为我认为我没有掌握有关图像内存管理的基础知识(我已经阅读了文档并进行了广泛的搜索,我我希望理想地与某人就此进行实际交谈)。
我有一个带有 5 个条件的 if,每个条件返回不同的图像。 我将图像转换为位图并将其设置为我的主要布局的新可绘制资源。
然后我再次执行此操作,相同的功能,但针对不同的位置,使用不同的图像。
这样做几次后,所有这些正在加载的图像似乎都保留在内存中,堵塞了它,导致错误。尽量保持简单,我应该在将这些不同的图像加载到我的布局背景之间执行哪些步骤以防止出现此问题?
最佳答案
你必须回收位图,你不再使用了。确保您同时持有非常有限数量的位图实例,并且每次您完成使用位图时调用其“recycle()”方法。
您可以在此处找到更多信息:Managing Bitmap Memory & Caching Bitmaps
关于android - OutOfMemoryError - 使用位图破坏堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27110869/