0
從一個活動轉換到另一個活動時,我一直在努力處理位圖內存管理。我發現兩個最大的幫助是: (1)跟蹤數組中片段或活動中的所有位圖,然後在onPause()和 (2)上清零數組,然後調用finish()我轉換到另一個活動。完成()和位圖內存管理
但完成()我失去了我所有的以前的狀態信息。
有沒有人知道什麼完成()正在做我的位圖內存管理,使我的位圖無效?
我想手動做什麼,完成()是爲了清理我的記憶。這是我的「clearBitmap」代碼我用空的位圖:
public void onPause() {
super.onPause();
clearBitmaps();
System.gc();
}
public void clearBitmaps() {
if (bitmapArray!=null) {
for (int i=0; i<bitmapArray.length; i++) {
if (bitmapArray[i]!=null) {
bitmapArray[i].recycle();
bitmapArray[i] = null;
}
}
bitmapArray = null;
}
}
我打過電話了clearBitmap()方法來代替精加工(),但它並沒有什麼好處。
順便說一句,我有效地加載位圖,並做Android告訴我做的位圖管理所有其他技巧,但仍然有這個問題。我覺得這個問題令人困惑,因爲我沒有使用很多位圖。但是如果我在大約40次的活動之間來回切換,它總是會崩潰(它曾經是6次,所以我已經用上面的方法取得了重大進展)。
謝謝!