我正在使用Google Maps Android API v2构建一个非常简单的地图应用。正如预期的那样,当用户离开并返回到应用程序时,随着活动被销毁并重新创建,他们在位置,缩放等方面所做的任何更改都将丢失。
[我知道我可以在onPause()
中以编程方式保存地图的相机状态(也许作为共享首选项中的值),然后在onResume()
中将其还原,但是API是否具有任何内置机制来在活动启动之间持久保存地图状态?
我认为您不能,但是您可以保存CameraPosition
,其中包含您的位置/缩放/角度...
按照此处的Retain instance of MapFragment指示,您可以简单地为setRetainInstance(true);
或MapFragment
调用SupportMapFragment
,以便在更改设备方向后保留相机状态和标记。但是,如果您想保持应用启动之间的状态(如SharedPreferences
此用例的API中没有任何内容。
[所有学分都归功于longi,2013年的答案。这对我很有帮助。为了进一步帮助他人,让我分享我的确切解决方案(基于longi的回答)。