android - 在 Android 游戏中添加暂停/恢复支持

标签 android resume

我正在尝试为我的 Android 游戏添加暂停/恢复支持。如何在用户按下暂停选项时暂停当前线程并在用户选择恢复选项时恢复线程?任何建议/想法都会有很大帮助。

最佳答案

尝试查看 ReplicaIsland 的来源或 LunarLander 中的示例代码例子。这两个是流行的起点示例。

此外,请确保您了解线程的工作原理以及您是否真的想暂停线程。另一种方法是在线程仍在运行时简单地暂停绘图/更新。像这样的一些代码可能就是您正在寻找的:

@Override
public void run()
{
    while (mRun)
    {
        Canvas c = null;
        try
        {
            c = mSurfaceHolder.lockCanvas(null);
            synchronized (mSurfaceHolder)
            {
                if (mMode == STATE_RUNNING)
                {
                  updatePhysics();
                }
                doDraw(c);
            }
        } finally {
          // ...
        }
    }
}

这是 LunarLander 示例中 run() 函数的修改版本。

主要的兴趣点是只有当 mMode == STATE_RUNNING 时才会调用 updatePhysics() 函数。简单地更改 mMode 将导致物理停止更新并有效地暂停游戏。

我认为这或多或少是@vivek 所描述的。

关于android - 在 Android 游戏中添加暂停/恢复支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5866029/

相关文章:

android - 从 ViewPager 中的 Fragments 调用 Adapter

android - 隐藏(或变暗)Android Wear 充电图标

android - 恢复 setActionBarTitle 问题时应用程序崩溃

ios - 如何在 iOS 中结束电话后恢复(或启动)我的应用程序(我的应用程序没有*未*启动电话)?

bash - 如何使用部分复制的文件恢复 scp?

android - 在 Activity 中加载 UI 组件的最佳实践

android - android中的MediaSessionCompat和MediaSession有什么区别?为什么有 androidx.media2 androidx.media 都存在?

java - HTTPS - Web 请求和响应是否已加密?

ios - ionic 应用程序恢复和暂停

Android 应用总是在恢复时打开第一个 Activity