2013-02-05 96 views
0

我正在開發一個Android應用程序,該應用程序正在使用分辨率約爲640 * 960的更多圖像。所有這些圖像都加載了適當比例因子的位圖。如何將應用程序關閉時堆大小設置爲最小

當我加載bitmpas堆大小正在增加,並且即使我正在回收bitmpas也不減少。當我讀到關於這個問題的幾個理論時,最大限度地說一旦堆增加,它就不會減少。

我的問題是,如果我關閉我的應用程序時,堆大小爲10MB,當我重新打開應用程序堆是從10Mb開始。它會導致VM超過最大堆內存,並在一段時間後超出內存。

我必須爲此做什麼,並且我保證我的應用程序永遠不會關閉出回收位圖。

任何人都可以請建議我如何最小化堆內存並解決這個OOM。

+0

做一件事你再次打開應用程序,然後釋放10MB。閱讀此http://android-sample-code.blogspot.in/2012/01/how-to-clear-cache-data-in-android.html –

+0

http://stackoverflow.com/questions/3117429/garbage- collector-in-android應該有所幫助 – smk

回答

0

即使我面臨同樣的問題....你可以參考的有效裝載位圖http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

一旦堆大小已超出垃圾收集器運行的極限這個鏈接...它清除任何不需要的對象因此它最好不要調用垃圾收集器,因爲它會自動運行。

在API級別運行的應用程序11+可以有機器人:largeHeap =「真」清單中的元素要求比正常大,堆大小

在你onCreate方法在你的活動,你可以使用這個(我沒有嘗試過) dalvik.system.VMRuntime.getRuntime()。setMinimumHeapSize(yournumberhere);

相關問題