Parpadeo rápido de la pantalla sin dibujar en Android OpenGL

Quería ahorrar tiempo de vida de la batería. Mi aplicación solo necesita ser dibujada a veces. Entonces agregué este código a mi Renderer en el método onDraw:

boolean dirty = true;

public void onDrawFrame(GL10 arg0) {
    if (!dirty) return;
    dirty = false;

    ..... draw images ....
}

Entonces mi aplicación solo se dibuja cuando la quiero. Pero lo que sucede es que si no dibujo mi aplicación en cada cuadro, parpadea muy rápido. Parece que se dibujará cada 2. cuadro más o menos y en todos los demás cuadros solo se dibujará una pantalla negra.

Sé que podría establecer el modo de renderizado enRENDERMODE_WHEN_DIRTY. Pero no quiero crear otro hilo para verificar si está sucio o no.

Mi pregunta es ¿por qué parpadea? No llamo a ningún método ni a GLES20 antes de hacer mi verificación:if (!dirty) return; y estoy seguro de que elboolean dirty no cambia y siempre es falso, excepto el primer fotograma.

EDITAR:

Cambié mi código a esto:

int dirty = 0;

public void onDrawFrame(GL10 arg0) {
    if (dirty > 1) return;
    dirty++;

    ..... draw images ....
}

¡Esto detiene el parpadeo! Parece que tienes que dibujar al menos 2 veces para no tener este extraño parpadeo de pantalla. De todos modos, ahora intentaré usar la forma más limpia y crear un hilo que llamerequestRender() cuando quiero dibujar algo y establecer mi modo de renderizado enRENDERMODE_WHEN_DIRTY

Respuestas a la pregunta(2)

Su respuesta a la pregunta