如何在Android中维护地图状态?

如何在Android中维护地图状态?,android,google-maps,Android,Google Maps,我正在使用具有默认位置的地图视图。如果我转到地图上的另一个位置,然后更改设备的方向,则该方向不会保存我以前的位置。它从默认位置开始 我怎样才能避免这种情况?我不想为我的应用程序禁用屏幕或维护更改。使用方法onretainonconfigurationinstance()保存位置,然后使用onCreate()中的getLastNonConfigurationInstance()还原所选项目 @Override public Object onRetainNonConfigurationInstan

我正在使用具有默认位置的地图视图。如果我转到地图上的另一个位置,然后更改设备的方向,则该方向不会保存我以前的位置。它从默认位置开始


我怎样才能避免这种情况?我不想为我的应用程序禁用屏幕或维护更改。

使用方法
onretainonconfigurationinstance()
保存位置,然后使用
onCreate()
中的
getLastNonConfigurationInstance()
还原所选项目

@Override
public Object onRetainNonConfigurationInstance() {
    return mapView.getMapCenter();
}

@Override
protected void onCreate(Bundle icicle) {
    Geopoint center = (Geopoint) getLastNonConfigurationInstance();

    if (point != null)
        mapView.getController().animateTo(center);
}

谢谢你的回答,但当我旋转屏幕时,应用程序现在崩溃了。这就是我使用的:重写公共对象onRetainonConfiguration实例(){return myMapView}和@在创建(Bundle savedInstanceState){GeoPoint point=(GeoPoint)GetLastNonfigurationInstance();if(point!=null)myMapView().animateTo(point);}时重写公共void请通知..您不想返回整个地图视图!就在地图中心。当方向改变时,地图视图将被破坏和重建。我更新了我的代码,使我的答案更清楚。谢谢。恐怕我没有完全正确地解释我的问题。在旋转屏幕时,用户应该仍然处于其先前的位置。但目前,用户被重定向到我设置的默认位置。例如:默认位置:底特律-->新位置:西雅图-->旋转屏幕-->用户应仍在西雅图。但是现在又在底特律上映了。尽管如此,谢谢你的最新答案。我期待着对我的问题提出任何建议。