我目前正在创建一个具有MainActivity和SurfaceView的游戏 . SurfaceView不是它自己的活动,而只是在MainActivity中调用 .
我想要做的是在MainActivity(暂停/恢复)上有一个按钮,它将暂停SurfaceView上的渲染并在单击时再次恢复 .
我不完全确定如何做到这一点,在我的SurfaceView(GameView)中我可以停止我的GameLoopThread但是如果我尝试简单地重新启动它(暂停然后恢复游戏)它什么都不做 .
我试图暂停/恢复活动本身以及尝试在布尔运行中运行我的SurfaceView但似乎都没有工作 .
任何想法,将不胜感激!
2 回答
您可以在SurfaceView类中创建类似boolean的标志,如isRunning = false;然后在开始你的线程之前检查它 . 还可以在表面视图中创建两个onPause()和onResume()方法 .
接受性地在您的活动onPause()和onResume()方法中调用这两种方法 .
你看过这个吗?
How to pause/resume thread in Android?
基本上,您可以将wait()和notifyAll()与锁定对象结合使用 .