surfaceCreated(SurfaceHolder holder)
和:onSurfaceCreated(GL10 gl, EGLConfig c)
是Android OpenGL ES开发中涉及Surface管理的两个关键方法,但它们属于不同类别的回调函数:
surfaceCreated(SurfaceHolder holder)
- 所属类 :
SurfaceHolder
的回调方法,用于监听Surface创建事件。当SurfaceView的Surface被创建时触发,通常用于初始化渲染线程或资源。 - 典型用法 :在
SurfaceHolder.addCallback(this)
中注册回调,确保在Surface可用后进行绘制操作。
onSurfaceCreated(GL10 gl, EGLConfig c)
- 所属类:EGL的初始化回调,用于EGL配置完成后的初始化操作。通常在EGL初始化流程中调用,与OpenGL ES渲染线程相关。
关键区别
- 触发时机 :
surfaceCreated
在Surface生命周期开始时触发;onSurfaceCreated
在EGL配置完成后调用。 - 应用场景:前者用于自定义视图渲染或相机预览;后者涉及OpenGL ES的底层配置和渲染线程初始化。
- 线程安全 :
surfaceCreated
需在非UI线程操作;onSurfaceCreated
需在EGL初始化线程中调用。