2011-12-06 76 views
2

我知道這是最討論的問題之一,但我無法弄清楚我的方式與這裏提供的問題。Android:Bitmap memory out

我解碼所述位圖如下

BitmapFactory.decodeFile(sdCardPath); 

當執行上面的行隨機系統運行內存。這並不總是發生。例如,如果我嘗試三次解碼相同的圖像,它可能會在第三次甚至是第四次出現內存不足。這個錯誤隨機觀察。

如何解決這個問題?

感謝您的時間提前

+0

把你的整個代碼.. – user370305

+1

這是一個很常見的問題。查看http://stackoverflow.com/questions/477572/android-strange-out-of-memory-issue/823966#823966瞭解更多詳情。 –

+0

感謝您的鏈接它對我有很大幫助 –

回答

1

首先,如果這是您的資產引用的位圖,我建議將它移動到您的res/drawables文件夾中,並以drawable的形式訪問它。如果情況並非如此,就像@VargaPeter所指出的那樣,您沒有對這個圖像進行太多引用,而是收集垃圾。使用多個位圖進行垃圾回收的最佳方法是調用,但也經常使用System.gc()(儘管在實踐中,您應該使用recycle()。如果仍有問題,則必須(a)使用Android NDK(不鼓勵),或者(b)使用較小的位圖圖片(推薦)。我知道在本網站的幾個地方有討論選項b的帖子,因爲我以前曾經有過這種相同的問題

1

,你回來可能是位圖是不是垃圾收集,因爲一個揮之不去的參考..儘量使用相同的參考,如果應用程序的設計允許,或重複使用小數字或引用...

+0

這是對任何內存不足情況的非常通用的答案。 :(我沒有太多的引用,因爲你懷疑。 –