It seems like a bug in GLSurfaceView
where it tries to be clever by tolerating you forgetting to call onResume()
and onPause()
. I'm not sure if this is deliberate or not.
Leaving the calls out works almost always, but it can cause odd behaviour and crashes in some situations. I'm not exactly sure what those situations are, but I have traced a few weird crashes back to missing onResume()
/onPause()
calls. Something gets slightly messed up with the state machine in GLSurfaceView
when you don't call them - it looks like the fallback logic to 'automatically' resume and pause doesn't get triggered in 100% of cases.