据Android开发者现场,Bitmap.recycle()
方法定义是:什么时候(如果有的话)我应该使用Bitmap.recycle()?
释放与此相关的位图的原生对象,并清除参考像素数据
我已经开发了一些正在创建/解码大量位图的应用程序,并将结果位图对象置于ImageView
s。有时候,我已经得到了著名的例外,如:
位图大小excceded VM预算
和
内存不足的错误
而且我敢肯定我没有任何内存泄漏可以导致这种情况。
经过大量搜索之后,我发现了“回收”方法,并在不再需要时使用它来释放位图的本机内存。 看起来好像帮了很多。我想知道这是我应该做的这种情况,因为 我知道系统是这样做的,不用明确地调用它(是吗?也许我错了)。
我应该在这种情况下使用这种方法吗?
在什么情况下我应该使用这种方法?
我应该使用这种方法吗?
在此先感谢。
UPDATE:
谷歌张贴this导向最近,这表示:
在Android 2.3.3(API级10)和下,使用循环()的建议。如果您在应用中显示大量的位图数据,则可能会遇到OutOfMemoryError错误。 recycle()方法允许应用程序尽快回收内存。
这是没有必要叫'recyle'。它可以帮助,但只有当你正确使用它时。实际上,为你的'Bitmap'对象创建一个'WeakReference'并且返回它就容易多了。 [你应该看这个谷歌IO谈话](http://www.youtube.com/watch?v=_CruQY55HOk) – adneal
@aneal:谢谢,很久以前已经看过这个视频。 –