在我的应用程序主屏幕的几个负载之后,我得到了一个OutOfMemoryError异常。该应用程序加载数据和有关位置的背景图像。有几个选项可供选择,经过5-6个不同的位置选择后,堆超过192 MB,我得到了错误。我认为问题是由于我使用位图不好。
我的代码很长,也不清楚,所以我将举一个例子,希望有人能帮我,因为我认为我没有掌握有关图像内存管理的基本知识(我已经阅读了文档并进行了广泛的搜索,我希望能够与其他人就这个问题进行理想的交谈)。
我有一个如果有5个条件,每个返回不同的图像。我将图像转换为位图,并将其设置为我的主布局的新的可绘制源。
然后我再做一次,相同的功能,但是对于一个不同的位置,一个不同的图像。
在这样做了几次之后,所有这些正在加载的图像似乎仍然留在内存中,并阻塞它,从而导致错误。为了保持简单,在将这些不同的图像加载到我的布局背景中以防止这个问题发生之间,我应该实现哪些步骤?
发布于 2014-11-24 17:42:59
你必须回收位图,你不再使用了。确保同时持有非常有限数量的位图实例,每次使用位图调用它的“循环()”方法时都要这样做。
您可以在这里找到更多信息:管理位图存储器 & 缓存位图
https://stackoverflow.com/questions/27110869
复制相似问题