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次,所以我已经用上面的方法取得了重大进展)。
谢谢!