有没有办法确保Android live墙纸获得OpenGL ES上下文?

有没有办法确保Android live墙纸获得OpenGL ES上下文?,android,opengl-es,3d,live-wallpaper,Android,Opengl Es,3d,Live Wallpaper,据报道,某些第三方Android启动器/主屏幕在启动实时墙纸时可能不会释放3D OpenGL ES资源。这可能会导致实时墙纸崩溃,从用户的角度来看,实时墙纸有问题 有没有办法对Android live墙纸进行编程,以确保它被授予OpenGL ES上下文 更广义地说,是否有任何方法可以编程Android应用程序/墙纸以避免出现此错误: "ERROR/libEGL(6044): call to OpenGL ES API with no current context" 我认为从另一个应用程序中

据报道,某些第三方Android启动器/主屏幕在启动实时墙纸时可能不会释放3D OpenGL ES资源。这可能会导致实时墙纸崩溃,从用户的角度来看,实时墙纸有问题

有没有办法对Android live墙纸进行编程,以确保它被授予OpenGL ES上下文

更广义地说,是否有任何方法可以编程Android应用程序/墙纸以避免出现此错误:

"ERROR/libEGL(6044): call to OpenGL ES API with no current context" 
我认为从另一个应用程序中获取OpenGL ES上下文可能是危险的——如果这是可能的话。作为替代方案,是否有任何方法请求上下文,然后等待它被授予?

根据:

使用eglGetCurrentContext、eglGetCurrentDisplay和 eglGetCurrentSurface查询当前渲染上下文和 关联的显示连接和曲面

链接文档用于
eglmakefurrent
函数,该函数应请求总账上下文。使用以下命令查询上下文是否是自由的:

EGL10 egl = (EGL10) EGLContext.getEGL();
EGLContext eglc = egl.eglGetCurrentContext();
if(eglc == egl.EGL_NO_CONTEXT){
    Log.d("OpenGLESTag","No context");
}

您可以使用eglGetDisplay(egl.egl_DEFAULT_Display)中的egl Display参数调用egl.makeCurrent,但我不确定与曲面对象(SurfaceView、GLSurfaceView、Canvas等)结合使用时会发生什么。