OK, so the latest news: you can use the method I described to save GL
context, but omit the step of creating a new context that shares
resources with the previous one. Instead, just set previous one as
current when resuming app, after creating a new surface. We tested it on
several devices at work, and it worked very well. It won't be in the new
version of the game we're releasing to store today, but the next one
will use it. If it works for our considerable userbase, I think we can
safely assume it would work for Allegro users as well :) The only thing
remaining is to test it on older Androids, since we do not support 2.x
at work anymore.