I had a similar problem and managed to find a quick fix, although I am not sure you are exactly in my situation. But so be it:
My app uses a ViewAnimator, of which children are classic android layouts, except one which is a GlSurfaceView. I had the same problem as you have when invoking another activity (Swarm in my case) and coming back (concerning AlertDialogs and Spinner "pop-ups". Toasts were working).
Then I noticed the problem was actually due to my GLSurfaceView: I removed my other activity, and was able to reproduce the problem by going to the GLSurfaceView, going back to the menu, pressing home, and coming back to the application. While investigating I was able to find a quickfix when I noticed that my GLSurfaceView child was actually a LinearLayout with the GLSurfaceView Inside. When I removed the (useless) parent layout, my problem was completely gone.
I have no real clue why this happens, and I will investigate more later. But for me the surface view was the problem : http://developer.android.com/reference/android/view/SurfaceView.html "The surface is Z ordered so that it is behind the window holding its SurfaceView; the SurfaceView punches a hole in its window to allow its surface to be displayed.". Note that now, displaying another child with some null background just after the surface view child does not display the surface view where there is the black background (as if it was beneath), but simply displays black.
I guess that somehow the creation of the actual surface with its own z Under the window, the fact that AlertDialogs use z order, and the hiding/displaying of the activity create a complete mess.
If you do not have any GLSurfaceView this will probably not help you I think, but perhaps Google Maps use one? If so I am not sure how you can fix it but it can at least be a clue about what happens.