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

时间:2011-08-04 17:22:22

标签: android google-maps

我正在使用带有默认位置的MapView。如果我转到地图上的其他位置然后更改设备的方向,则方向不会保存我以前的位置。它从默认位置开始!

我该如何避免这种情况?我不想为我的应用程序禁用屏幕更改。

1 个答案:

答案 0 :(得分:2)

使用方法onRetainNonConfigurationInstance()保存位置,然后使用getLastNonConfigurationInstance()中的onCreate()恢复所选项目。

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

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

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