By default, the android.view.View is destroyed whenever the phone rotates or you transition to another view. I disagree with that design, but it's fundamental to the Android OS, and it even affects web apps running in the phone's browser. Here's a few ideas that I've used before:
1) Until you can migrate to Fragments you can "temporarily" continue to use onRetainNonConfigurationInstance() with your current architecture. That's not ideal, of course, but the functionality is deprecated but not gone and removed from the native SDK...yet.
2) You can prevent rotation of the screen but not allowing it in the manifest. I've seen this most often on phones where viewing the map in portrait mode makes the most sense and best use of screen real estate. I understand that might not work with your requirements.
3) **Make sure you set the android:configChanges property in the manifest's Activity tag. For example, android:configChanges="orientation". This prevents the onCreate event from firing every time the phone rotates. Why? Because every time onCreate fires then depending on how you architected your code it could be rebuilding (or partially rebuilding) your map.
You can also do the following if #2 above doesn't resolve your issues:
1) Store any important map or graphic layer values in SQLite or in a singleton
2) Listen for rotation events
3) when phone rotates rebuild the map using the values stored in step #1.
Again, this isn't ideal but the pattern can give you a framework for attempting to maintain map state.
-Andy
-Andy