android - 如何从 MainActivity 暂停/恢复 SurfaceView?

标签 android android-activity surfaceview onresume onpause

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

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

我不完全确定该怎么做,在我的 SurfaceView (GameView) 中我可以停止我的 GameLoopThread,但如果我尝试简单地重新启动它(暂停然后继续游戏)它什么都不做。

我尝试过暂停/恢复 Activity 本身以及尝试在 bool 值运行中运行我的 SurfaceView,但似乎都不起作用。

如有任何想法,我们将不胜感激!

最佳答案

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

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

在您的 Activity 中分别调用这两个方法的 onPause() 和 onResume() 方法。

关于android - 如何从 MainActivity 暂停/恢复 SurfaceView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20236583/

相关文章:

android - Eclipse w/ADT 崩溃,编辑器中出现 "import android."语句

android - 当应用程序在后台运行时,Android 能否在不终止整个进程的情况下终止 Activity ?

java - 使用另一个 Activity 的静态方法启动 Activity 是一个好习惯吗?

android - 通过某种方式通过 Intent 启动 Activity 有什么好处?

java - 从表面 View 录制视频(绑定(bind)视频和相机预览)

android - DrawerLayout 不适用于 Android 4.4 和 SurfaceView

android - 图形在 X 轴和 Y 轴外可见

java - 退出 Activity 时 Android 4.0 上的线程崩溃

java - 从 Android Wear 上的日历获取数据

android - 了解 Canvas 和 Surface 概念