如何清除Android中的位图内存?

时间:2013-05-25 07:09:26

标签: android canvas bitmap heap-memory

我创建了一个Bitmap并在Canvas中使用它绘制一个圆圈,每次调用Activity时调用此方法,并且多次调用Activity,以便我得到一些错误,如1536000-byte external allocation too large for this process 我知道错误是内存问题但是如何清除位图并且还在第二次使用Activity调用..

我的代码是:

private void Draw_Hold_Circle() {
        Bitmap bitmap_hold = Bitmap.createBitmap(width, height,
                Bitmap.Config.ARGB_8888);
         Canvas canvas_hold = new Canvas(bitmap_hold);
        canvas_hold.drawArc(rect_open, 0, 360, false, mOutlinePaint);

    }

此方法被调用4次,MainActivity可以调用多次,所以如何维护位图及其内存?

1 个答案:

答案 0 :(得分:0)

为什么要在内存中保存图像有什么特殊原因吗?如果我没有错,你可以“每次调用你的活动时”调用你的方法,所以我猜你的意思是每次启动startActivity()。如果是这种情况,则无需立即将所有图像保存在内存中,因为用户将能够看到前景活动中的图像。我建议您将图像保存到onStop()方法的文件中,并在必要时在onResume()方法上重建它。