code: private void clearSurface() {
          if (mSurface == null || Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
              return;
          }
  
          EGL10 egl = (EGL10) EGLContext.getEGL();
          EGLDisplay display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
          egl.eglInitialize(display, null);
  
          int[] attribList = {
              EGL10.EGL_RED_SIZE, 8,
              EGL10.EGL_GREEN_SIZE, 8,
              EGL10.EGL_BLUE_SIZE, 8,
              EGL10.EGL_ALPHA_SIZE, 8,
              EGL10.EGL_RENDERABLE_TYPE, EGL10.EGL_WINDOW_BIT,
              EGL10.EGL_NONE, 0,      // placeholder for recordable [@-3]
              EGL10.EGL_NONE
          };
          EGLConfig[] configs = new EGLConfig[1];
          int[] numConfigs = new int[1];
          egl.eglChooseConfig(display, attribList, configs, configs.length, numConfigs);
          EGLConfig config = configs[0];
          EGLContext context = egl.eglCreateContext(display, config, EGL10.EGL_NO_CONTEXT, new int[]{
              12440, 2, EGL10.EGL_NONE
          });
          EGLSurface eglSurface = egl.eglCreateWindowSurface(display, config, mSurface, new int[]{
              EGL10.EGL_NONE
          });
  
          egl.eglMakeCurrent(display, eglSurface, eglSurface, context);
          GLES20.glClearColor(0, 0, 0, 1);
          GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
          egl.eglSwapBuffers(display, eglSurface);
          egl.eglDestroySurface(display, eglSurface);
          egl.eglMakeCurrent(display, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
          egl.eglDestroyContext(display, context);
          egl.eglTerminate(display);
      }
docs: Clears the surface texture by attaching a GL context and clearing it.
  Code taken from <a href="http://stackoverflow.com/a/31582209">Hugo Gresse's answer on stackoverflow.com</a>.