首页 文章

如何从MainActivity暂停/恢复SurfaceView?

提问于
浏览
1

我目前正在创建一个具有MainActivity和SurfaceView的游戏 . SurfaceView不是它自己的活动,而只是在MainActivity中调用 .

我想要做的是在MainActivity(暂停/恢复)上有一个按钮,它将暂停SurfaceView上的渲染并在单击时再次恢复 .

我不完全确定如何做到这一点,在我的SurfaceView(GameView)中我可以停止我的GameLoopThread但是如果我尝试简单地重新启动它(暂停然后恢复游戏)它什么都不做 .

我试图暂停/恢复活动本身以及尝试在布尔运行中运行我的SurfaceView但似乎都没有工作 .

任何想法,将不胜感激!

2 回答

  • 0

    您可以在SurfaceView类中创建类似boolean的标志,如isRunning = false;然后在开始你的线程之前检查它 . 还可以在表面视图中创建两个onPause()和onResume()方法 .

    onPause(){
       isRunning=false;
       // make thread null;
    }
    And
    onResume(){
    isRunning=true;
    }
    

    接受性地在您的活动onPause()和onResume()方法中调用这两种方法 .

  • 2

    你看过这个吗?

    How to pause/resume thread in Android?

    基本上,您可以将wait()和notifyAll()与锁定对象结合使用 .

相关问题