2015-04-28 26 views
-1

我對bitmaps的內存使用情況存在嚴重問題,如果是ViewPager則更爲重要。分析Android Studio的內存監視器,內存使用情況顯着增加。我已經使用庫加載圖像沒有成功,我試圖回收它們,但它非常危險,因爲Android可能隨時崩潰。我應該如何使用位圖?

有些想法? :(關鍵在於,如果不加以控制這個問題,應用程序可以與惱人的java.lang.memoryOutError崩潰。

+0

您需要重新調整位圖,這聽起來像是在嘗試加載bu當你可能將它們縮小到分辨率較低的時候,可以找到很多高清圖像。 – zgc7009

+0

你見過這個嗎? http://developer.android.com/training/displaying-bitmaps/index.html –

+0

@ zgc7009我重新調整了圖像,但這是一個短期解決方案。經典問題視圖設計vs性能。 –

回答

1

你可以嘗試在LruCache,當你達到你的內存限制,這將自動回收位圖緩存位圖。如果這並沒有幫助,您可以通過在Android Manifest文件的application標籤中包含android:largeHeap="true"來爲您的應用程序請求更大的堆大小。此外,要停止由於內存不足而導致應用程序崩潰,請嘗試並聽取onLowMemory()方法在您的應用程序和活動類中,並嘗試清除/回收儘可能多的數據,您可以在該方法中使用

+0

有趣的:)。男人,你有一個例子嗎?這真的很棒:D –

+0

你可以看看使用來自Android的文檔[這裏](http://developer.android.com/reference/android/util/LruCache.html)的LRUCache示例代碼和[this ](http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html)示例應用程序。至於在調用'onLowMemory()'方法時該怎麼做取決於應用程序中消耗內存的確切內容。您將不得不快速清除內存中的數據。您也可以嘗試將圖像存儲到磁盤緩存。 – Hassaan

+0

好的,我會試試看。 –