我有一個用戶評論,查看我的應用程序中的一堆圖像後,它崩潰(他認爲這是由於內存不足錯誤)。我有以下相關代碼:潛在的內存不足錯誤與多個位圖
int themeID = mNav[mPos];
String icon = getThemeData(DbAdapter.KEY_ICON, themeID);
ImageView viewer = (ImageView)findViewById(R.id.viewer);
Bitmap bMap = null;
try {
bMap = getJPG(icon + ".jpg");
} catch (IOException e) {
e.printStackTrace();
}
viewer.setImageBitmap(bMap);
當用戶在圖像之間翻轉時,會得到reran。從here我看到你應該在位圖上調用recycle()。設置圖像後,我是否需要在bMap上調用它?或者在設置下一個之前有什麼辦法可以將它從viwer中拉出來?
根據回收的文檔(如果我在bMap上調用它)看起來我不需要使用它:這是一個高級調用,通常不需要調用,因爲正常的GC進程將釋放這個內存當沒有更多的引用到這個位圖。
嘗試了旋轉。根據您的條款,似乎不是內存泄漏。從5000到7000回到5000,然後在旋轉20到30次後反彈。 – easycheese
是的,看起來沒關係。也許它不是OOM錯誤?他怎麼知道它是一個?他有一個FC?也許告訴他複製報告併發送給你(這是一個堆棧跟蹤)?不過,我不確定報告是否出現在所有系統上。 –