Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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 OpenGL SurfaceHolder回调_Android_Opengl Es_Callback_Opengl Es 2.0_Glsurfaceview - Fatal编程技术网

Android OpenGL SurfaceHolder回调

Android OpenGL SurfaceHolder回调,android,opengl-es,callback,opengl-es-2.0,glsurfaceview,Android,Opengl Es,Callback,Opengl Es 2.0,Glsurfaceview,对于表面创建,表面更改和表面删除的状态: 此方法是SurfaceHolder.Callback接口的一部分,通常不被GLSurfaceView的客户端调用或子类化 但是,它们在我的(OpenGL ES 2.0)应用程序中被调用 这是我应用程序中的顺序 应用程序启动 表面粗糙 表面变化 在表面上创建 现在我在调用onSurfaceChanged之前按Home键,所以应用程序现在处于后台 浮出水面 表面变化 因此,正如你所看到的,根据上面的描述,表面被破坏了,然后它被改变了——显然这是不可能

对于表面创建表面更改表面删除的状态:

此方法是SurfaceHolder.Callback接口的一部分,通常不被GLSurfaceView的客户端调用或子类化

但是,它们在我的(OpenGL ES 2.0)应用程序中被调用

这是我应用程序中的顺序

应用程序启动

  • 表面粗糙
  • 表面变化
  • 在表面上创建
现在我在调用onSurfaceChanged之前按Home键,所以应用程序现在处于后台

  • 浮出水面
  • 表面变化
因此,正如你所看到的,根据上面的描述,表面被破坏了,然后它被改变了——显然这是不可能的

该应用程序运行良好。然后我可以重新启动它,一切正常

我只是有点困惑。我的猜测是调用了surfaceCreatedsurfaceChangedsurfaceDestroyed,但对我的GLSurfaceView没有影响


有人能证实这一点吗?

我想您可能误解了文档。这并不是说不调用这些方法。加上重点:

GLSURFACHEVIEW的客户端通常不会调用或子类化

这告诉你的是,如果你使用
GLSurfaceView
类,这使你成为一个客户机,你不应该调用这些方法。此外,如果您将
GLSurfaceView
子类化,他们不建议您重写这些方法


换句话说,这些方法仅供内部使用。它们会被调用,但通常应由
GLSurfaceView
来处理调用。作为
GLSurfaceView
的用户,您根本不应该担心这些方法,当您对
GLSurfaceView
进行子类化,并与
GLSurfaceView

的实例进行交互时,请使用推荐的和有良好文档记录的方法。换句话说,GLSurfaceView是一个SurfaceView,它周围有一些辅助代码。它确实应该是“支持库”的一部分,而不是与框架类混合在一起。如果您从GLSURFACHEVIEW实现中“窃取”回调,那么您将度过一段糟糕的时光。另见。