由于createBitmap报告OOM,Monkey测试失败
在我的自定义View类中,我确定了视图大小后创建了一个位图。
public void onSizeChanged(int w, int h, int oldw, int oldh) {
if (w == 0) return;
mBoard = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_4444);
// draw something on mBoard, to reduce load of onDraw
}
在onDraw中,绘制mBoard到画布和其他东西。
不幸的是createBitmap有时会在猴子测试期间报告OOM,而不是第一次加载视图。 猴子测试会在短时间内多次进入/退出活动。
我猜mBoard已经创建,但在活动退出后不会释放,所以下次进入活动时会分配另一个内存块。 为了解决这个问题,在activity的onDestroy()中,调用View的recycle()方法。
void recycle() {
if (mBoard != null) {
mBoard.recycle();
mBoard = null;
}
}
通过调用回收,在使用Runtime.getRuntime()。getFree / MaxMemory()检查空闲/总堆内存时,我仍然没有发现任何差异。 我认为猴子测试可能仍然失败。 谁能帮忙?
链接地址: http://www.djcxy.com/p/93069.html