glClearColor não está funcionando corretamente (android opengl)

Quero alterar a cor de segundo plano do meu aplicativo em tempo de execução. Então, no botão, clique em Ligar pela primeira vez:

GLES20.glClearColor(color[0], color[1], color[2], color[3]);

Então eu ligo:

GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);

E não faz nada! Mantém a cor de fundo atual - não a altera. Mas, quando pauso meu aplicativo e o retomo novamente, a cor do plano de fundo muda.

EDITAR: Eu descobri uma maneira de fazer isso. Cada quadro que eu chamo pela primeira vezglClear mas eu não ligueiglClearColor. Então, se eu ligar primeiroglClearColor cada quadro antes de ligarglClear funciona. Mas isso ainda não faz sentido para mim, eu queria evitar ligarglClearColor em cada quadro, pensei que seria suficiente se eu ligar uma vez quando quiser mudar a cor.