OpenGL ES 2.0 只工作一次

OpenGL ES 2.0 works only once

我使用 OpenGL ES 2.0 在 GLSurfaceView 上成功绘制了简单的形状。到目前为止,我没有使用任何纹理。问题是,当我第二次重新 运行 时 activity 和 GLSurfaceView 屏幕是空的(黑色),不再绘制形状。我必须重新安装整个应用程序才能使其再次运行。 我没有任何特殊方法 onPause & onResume 所以我假设 GLSurfaceView 的新实例应该在每次我重新 运行 应用程序时重绘屏幕。

有人知道我在这里遗漏了什么吗?

I don't have any special methods onPause & onResume

这可能是你的问题。您需要遵循 documentation of GLSurfaceView,特别是 "Activity Life-cycle":

下的内容

A GLSurfaceView must be notified when the activity is paused and resumed. GLSurfaceView clients are required to call onPause() when the activity pauses and onResume() when the activity resumes. These calls allow GLSurfaceView to pause and resume the rendering thread, and also allow GLSurfaceView to release and recreate the OpenGL display.