Android SurfaceView奇怪的行为

Android SurfaceView奇怪的行为,android,surfaceview,Android,Surfaceview,当我做pauseGame=true时这是工作(加载CPU~0%),但我看到显示屏上有奇怪的东西在改变两个(或更多)图像,在My_static_draw()中绘制的图像1,以及My_Game_draw()中的一些最后图像我猜在调用答案中包含的代码之前,您正在调用Surface.lockCanvas()。如果这样做,您必须重新绘制整个脏区域(默认情况下,这是整个屏幕) 因为SurfaceView是双缓冲或三缓冲的,所以您正在循环浏览以前的帧。如果在不绘制任何内容的情况下锁定和解锁,则只需提交先前绘制

当我做
pauseGame=true时
这是
工作(加载CPU~0%)
,但我看到显示屏上有奇怪的东西在改变两个(或更多)图像,在
My_static_draw()
中绘制的图像1,以及
My_Game_draw()中的一些最后图像

我猜在调用答案中包含的代码之前,您正在调用
Surface.lockCanvas()
。如果这样做,您必须重新绘制整个脏区域(默认情况下,这是整个屏幕)

因为SurfaceView是双缓冲或三缓冲的,所以您正在循环浏览以前的帧。如果在不绘制任何内容的情况下锁定和解锁,则只需提交先前绘制的缓冲区


如果没有要绘制的内容,您可以通过根本不调用
lockCanvas()
/
unlockCanvasAndPost()
来解决此问题。

如果这回答了您的问题,请单击答案左侧的复选标记将其标记为“已接受”。
if(pauseGame){
    if(update){
        update = false;
        My_static_draw();
    }else{
        try {
           Thread.sleep(160);
        } catch (InterruptedException e) {
           e.printStackTrace();
        }
    }
}else{
   My_Game_draw(); //its load CPU
}