Android 什么';这是使用OpenGL处理活动生命周期的正确方法

Android 什么';这是使用OpenGL处理活动生命周期的正确方法,android,opengl-es,Android,Opengl Es,我在这里真的很挣扎,这让我退缩了 处理OpenGL和活动的正确方法是什么?启动子活动或返回主屏幕。让它恢复到原来的位置 我让它按原样工作,需要时在onResume()上重新加载纹理/VBO 但有时,当启动子活动并返回时,或转到主屏幕并返回时,onCreate再次被触发。这把整个事情搞砸了,结果我的屏幕变成了黑屏 我肯定我做错了整件事。有人能解释一下如何处理这样的活动吗?您使用的是什么平台 我问的原因是,在Eclair之前,整个区域都充满了bug,结果是暂停/恢复OpenGL基本上只是偶然的。然而

我在这里真的很挣扎,这让我退缩了

处理OpenGL和活动的正确方法是什么?启动子活动或返回主屏幕。让它恢复到原来的位置

我让它按原样工作,需要时在onResume()上重新加载纹理/VBO

但有时,当启动子活动并返回时,或转到主屏幕并返回时,onCreate再次被触发。这把整个事情搞砸了,结果我的屏幕变成了黑屏


我肯定我做错了整件事。有人能解释一下如何处理这样的活动吗?

您使用的是什么平台

我问的原因是,在Eclair之前,整个区域都充满了bug,结果是暂停/恢复OpenGL基本上只是偶然的。然而,Eclair似乎已经修复了这些问题,我们的应用程序似乎可以相当可靠地暂停和恢复

你应该做的是注册一个对你的SurfaceHolder的回调,这样你就可以在曲面出现和消失时得到通知。在surfaceDestroyed()方法中,完全关闭EGL,然后在surfaceCreated()方法中重新初始化它。您不应该通过活动的onCreate()/onResume()方法执行任何操作,因为曲面可能不会同时出现和消失

这就是说,我们的应用程序是为纸杯蛋糕设计的,当时的情况非常原始。我想现在有一些实用课程可以帮你完成所有繁重的工作,所以如果你使用其中的一种,它们的工作方式可能会有所不同;如果你不是,你可能想调查一下