A workaround is to call a run queue at the start of onDrawFrame(). Put
the code to reset the screen in a Runnable, then pass it to the run
queue. If you look at the existing GLWallpaperService code, that's
what queueEvent() does---except that it runs the queue after drawing.
This way guarantees that your code gets called before drawing. At
least that's what I've been observing in my test phone...