Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何恢复我的android游戏&x27;通话结束后的本地活动(GLES层)?_Android_Android Ndk_Powervr Sgx - Fatal编程技术网

如何恢复我的android游戏&x27;通话结束后的本地活动(GLES层)?

如何恢复我的android游戏&x27;通话结束后的本地活动(GLES层)?,android,android-ndk,powervr-sgx,Android,Android Ndk,Powervr Sgx,我在android应用程序中使用本机活动运行GLES2。通话结束后,我返回应用程序,但屏幕仍为空白。我检查了任务管理器,发现应用程序仍在运行。有人能告诉我 1) 我必须编写代码来保存和恢复我的游戏,我必须用java重写哪些调用才能做到这一点 2) 有一种更自动化的方法可以在不保存/还原的情况下还原我的应用程序 谢谢, Madan这可能是因为Android在将应用程序发送到后台后会破坏OpenGL上下文,默认情况下不会自动恢复 有两种方法可以解决此问题-如果您的目标是蜂窝设备或更高版本,最简单的方

我在android应用程序中使用本机活动运行GLES2。通话结束后,我返回应用程序,但屏幕仍为空白。我检查了任务管理器,发现应用程序仍在运行。有人能告诉我 1) 我必须编写代码来保存和恢复我的游戏,我必须用java重写哪些调用才能做到这一点 2) 有一种更自动化的方法可以在不保存/还原的情况下还原我的应用程序

谢谢,
Madan

这可能是因为Android在将应用程序发送到后台后会破坏OpenGL上下文,默认情况下不会自动恢复

有两种方法可以解决此问题-如果您的目标是蜂窝设备或更高版本,最简单的方法是在
GLSurfaceView
上使用
setPreserveEGLContextOnPause
(请参阅)。另一种选择是,如果您的目标是较低的操作系统版本,则手动恢复所有内容。当上下文被破坏时,所有附加到它的东西都会被破坏——着色器、纹理、顶点和索引缓冲区。您需要在正确的时间重新创建它们-在
onSurfaceCreated
期间。有关更多详细信息,请参阅Android


更新-我的引擎中针对预蜂窝设备的示例实现是。请参阅
PIXELBOOST\u GRAPHICS\u HANDLE\u CONTEXT\u LOST中包装的代码
。用于调用上下文的重新创建的绑定位于中。

示例实现链接已失效。