gpt4 book ai didi

android - 如何在电话结束后恢复我的 Android 游戏的原生 Activity (GLES 层)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:12:57 24 4
gpt4 key购买 nike

我在我的 Android 应用程序中使用 native Activity 运行 GLES2。通话结束后,我返回我的应用程序,但屏幕仍然空白。我检查了任务管理器,发现该应用程序仍在运行。有人可以指点我吗1) 我必须编写代码来保存和恢复我的游戏以及我必须在 java 中覆盖哪些调用才能执行此操作2) 有一种更自动化的方式来恢复我的应用程序而无需保存/恢复

谢谢,马丹

最佳答案

这可能是因为 Android 在将应用程序发送到后台后销毁了 OpenGL 上下文,并且默认情况下不会自动恢复它。

有两个选项可以解决此问题 - 如果您的目标是 Honeycomb 设备或更高版本,最简单的方法是在 GLSurfaceView 上使用 setPreserveEGLContextOnPause(参见 here) .如果您的目标是较低的操作系统版本,则另一种方法是手动恢复所有内容。当上下文被销毁时,附加到它的所有东西也会被销毁——着色器、纹理、顶点和索引缓冲区。您需要在正确的时间重新创建这些 - 在 onSurfaceCreated 期间。引用安卓documentation了解更多详情。

更新 - 我的引擎为 pre-HoneyComb 设备实现的示例是 here .查看包含在 PIXELBOOST_GRAPHICS_HANDLE_CONTEXT_LOST 中的代码。调用上下文重新创建的绑定(bind)位于 example project 中。 .

关于android - 如何在电话结束后恢复我的 Android 游戏的原生 Activity (GLES 层)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12193743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com