有没有遇到过?有人可以给我一个打击如何处理吗?多谢。
在我的游戏中,我使用了大量的Canvas.clipRect()函数,我发现,在android 4.0及以上,游戏运行10分钟后,它的进程被activityManager杀死。我放弃了使用 Canvas.clipRect(),它运行了很长时间。
有没有遇到过?有人可以给我一个打击如何处理吗?多谢。
在我的游戏中,我使用了大量的Canvas.clipRect()函数,我发现,在android 4.0及以上,游戏运行10分钟后,它的进程被activityManager杀死。我放弃了使用 Canvas.clipRect(),它运行了很长时间。
尝试使用 Canvas.clipRegion() 而不是使用 Canvas.clipRect()。这个对我有用。
示例解决方法:
public void setClipNoOOM(int left, int top, int right, int bottom, Region.Op op, android.graphics.Canvas canvas) {
if (op == Region.Op.INTERSECT)
canvas.clipRect(left, top, right, bottom, op);
else {
RectF rectF = new RectF(left, top, right, bottom);
Matrix m = canvas.getMatrix();
m.mapRect(rectF);
Region region = new Region((int)rectF.left, (int)rectF.top, (int)rectF.right, (int)rectF.bottom);
canvas.clipRegion(region, op);
}
}