Android OpenGL SurfaceHolder回调
对于表面创建,表面更改和表面删除的状态: 此方法是SurfaceHolder.Callback接口的一部分,通常不被GLSurfaceView的客户端调用或子类化 但是,它们在我的(OpenGL ES 2.0)应用程序中被调用 这是我应用程序中的顺序 应用程序启动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键,所以应用程序现在处于后台 浮出水面 表面变化 因此,正如你所看到的,根据上面的描述,表面被破坏了,然后它被改变了——显然这是不可能
- 表面粗糙
- 表面变化
- 在表面上创建
- 浮出水面
- 表面变化
有人能证实这一点吗?我想您可能误解了文档。这并不是说不调用这些方法。加上重点: GLSURFACHEVIEW的客户端通常不会调用或子类化 这告诉你的是,如果你使用
GLSurfaceView
类,这使你成为一个客户机,你不应该调用这些方法。此外,如果您将GLSurfaceView
子类化,他们不建议您重写这些方法
换句话说,这些方法仅供内部使用。它们会被调用,但通常应由
GLSurfaceView
来处理调用。作为GLSurfaceView
的用户,您根本不应该担心这些方法,当您对GLSurfaceView
进行子类化,并与GLSurfaceView
的实例进行交互时,请使用推荐的和有良好文档记录的方法。换句话说,GLSurfaceView是一个SurfaceView,它周围有一些辅助代码。它确实应该是“支持库”的一部分,而不是与框架类混合在一起。如果您从GLSURFACHEVIEW实现中“窃取”回调,那么您将度过一段糟糕的时光。另见。