Android 何时调用GLSurfaceView方法onPause()和onResume()

Android 何时调用GLSurfaceView方法onPause()和onResume(),android,opengl-es,onresume,glsurfaceview,onpause,Android,Opengl Es,Onresume,Glsurfaceview,Onpause,我反复读到,在封闭活动的onPause()和onResume()方法期间,必须为GLSurfaceview调用onPause()和onResume()。我推测这是为了停止并重新启动渲染线程以节省资源。然而,当我记录渲染线程的onDraw方法的每次迭代时,我看到当我按下home或back按钮时onDraw停止被调用,当我返回到应用程序时,onSurfaceCreated和onSurfaceChanged被调用,然后onDraw调用恢复-即使在我删除对GLSurfaceview的onPause()和

我反复读到,在封闭活动的onPause()和onResume()方法期间,必须为GLSurfaceview调用onPause()和onResume()。我推测这是为了停止并重新启动渲染线程以节省资源。然而,当我记录渲染线程的onDraw方法的每次迭代时,我看到当我按下home或back按钮时onDraw停止被调用,当我返回到应用程序时,onSurfaceCreated和onSurfaceChanged被调用,然后onDraw调用恢复-即使在我删除对GLSurfaceview的onPause()和onResume()的调用之后方法在相应的活动方法中。如果渲染线程没有停止,我如何看到这种行为?即使不再调用onDraw,渲染线程是否仍以某种方式处于活动状态?如果渲染线程在活动失去焦点时自动关闭,那么为什么需要调用onPause()和onResume()的GLSurfaceview版本?

GLSurfaceview
中,它似乎是一个bug,它试图通过容忍您忘记调用
onResume()
onPause()而变得聪明起来
。我不确定这是不是故意的


不打电话几乎总是有效的,但在某些情况下会导致奇怪的行为和崩溃。我不太清楚这些情况是什么,但我追踪到了一些奇怪的崩溃,它们都是由于缺少
onResume()
/
onPause()
调用造成的。当你不调用状态机时,
GLSurfaceView
中的状态机会稍微出点问题-看起来“自动”恢复和暂停的回退逻辑在100%的情况下都不会触发。

这看起来像是
GLSurfaceView
中的一个bug,它试图通过容忍你忘记调用来变得聪明
onResume()
onPause()
。我不确定这是不是故意的

不打电话几乎总是有效的,但在某些情况下会导致奇怪的行为和崩溃。我不太清楚这些情况是什么,但我追踪到了一些奇怪的崩溃,它们都是由于缺少
onResume()
/
onPause()
调用造成的。当您不调用状态机时,
GLSURFACHEVIEW
中的状态机会出现一些轻微的混乱-看起来“自动”恢复和暂停的回退逻辑在100%的情况下不会触发