據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:謝謝,很久以前已經看過這個視頻。 –