2012-09-17 81 views
2

我有一個非常強烈的應用程序,我發現加載多個活動時遇到了大量OutOfMemory問題。活動後端堆棧上的回收活動視圖

這些活動都是位圖的網格視圖或列表視圖,點擊圖片會將您帶到另一個包含另一組圖像的活動(有點像專輯冊頁冊頁的專輯)。前3個活動運行良好,但當進一步下行時,我開始遇到一些嚴重的OutOfMemory錯誤。

在使用DDMS進行堆棧轉儲之後,似乎以前活動的GridViews和Listviews會佔用所有內存。這是預料之中的,因爲它們本身顯示了很多位圖,但我不確定虛擬機是如何解放堆棧中的活動的,並且即使你沒有將「finish()」稱爲他們。

做活動recylce他們的意見,當他們進入後臺,然後恢復他們,當你回到活動,或正在清理我的gridviews和listviews這是我需要手動處理活動onPause()和onResume()在離開生命週期函數中的活動時?

回答

1

請參閱我的回答對OOME

總是調用bitmap.recycle()使用bitmaps後,由於位圖舉行GC不能清晰的記憶。

上面的鏈接有一個通用的解決方案,請通過它。