NDK SurfaceView 重绘在屏幕旋转时显示损坏

NDK SurfaceView redraw got broken display on screen rotate

我正在使用带有 ndk+openGL 的 SurfaceView,当按下模拟器的屏幕旋转按钮时, 我从 SurfaceHolder.Callback 收到 SurfaceChanged 事件,然后我 post 通过 Handler 重绘消息,并且 Handler 通过 JNI 本机代码使用新的显示指标重绘屏幕,但显示已损坏,如图所示。

我确定本地 OpenGL 绘图代码已经绘制了一帧,在按下旋转按钮之后和屏幕旋转完成之前,但不知道为什么显示坏了。

我对android不太熟悉,谁能帮帮我。谢谢。

编辑: 当我进行一些触摸事件以触发新帧时,显示已修复。 所以我在想是否有一个旋转完成事件,所以我可以强制绘制一帧来解决这个问题。

问题已解决。

重写SurfaceHolder.Callback2的surfaceRedrawNeeded方法,旋转完成后调用