如何从MainActivity暂停/恢复SurfaceView



我目前正在创建一个游戏,它有一个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()与锁对象结合使用。

相关内容

  • 没有找到相关文章

最新更新