如何从MainActivity暂停/恢复SurfaceView?

时间:2013-11-27 07:44:50

标签: android android-activity surfaceview onresume onpause

我目前正在制作一款具有MainActivity和SurfaceView的游戏。 SurfaceView不是它自己的活动,而只是在MainActivity中调用。

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

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

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

任何想法都将不胜感激!

2 个答案:

答案 0 :(得分:2)

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

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

接受调用活动onPause()和onResume()方法中的这两种方法。

答案 1 :(得分:0)

你有看过这个吗?

How to pause/resume thread in Android?

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