我目前正在创建一个游戏,它有一个MainActivity和一个SurfaceView。SurfaceView不是它自己的活动,而是在MainActivity中简单调用的。
我想做的是在MainActivity上有一个按钮(暂停/恢复),它将暂停SurfaceView上的渲染,并在单击时再次恢复渲染。
我不完全确定我会怎么做,在我的SurfaceView(GameView)中,我可以停止我的GameLoopThread,但如果我尝试简单地重新启动它(暂停然后恢复游戏),它什么都不会做。
我尝试过暂停/恢复活动本身,也尝试过在布尔运行中运行我的SurfaceView,但似乎都不起作用。
任何想法都将不胜感激!
您可以在SurfaceView类中创建一个类似标志的布尔值,如isRunning=false;然后在开始你的线程之前检查一下。同时在surface视图中创建两个方法onPause()和onResume()。
onPause(){
isRunning=false;
// make thread null;
}
And
onResume(){
isRunning=true;
}
在活动onPause()和onResume()方法中同时调用这两个方法。
你看过这个吗?
如何在Android中暂停/恢复线程?
基本上,您可以将wait()和notifyAll()与锁对象结合使用。