0

У меня есть приложение, которое использует карты Google. Я сохраняю latLngBounds для переменных, а затем для связывания для последующего извлечения. Моя проблема в том, что я хочу сохранить текущую позицию экрана, а затем переместить камеру в этот LatLng. Но каждый раз, когда я нажимаю маркер и запускаю другое действие, и возвращаюсь обратно, экран попадает в центр с этим щелчком, но я хочу избавиться от этой функции и вернуть экран обратно в предыдущую позицию.Приложение не восстанавливает пакет после возвращения из другой активности

EDIT: Проблема в том, что мое приложение не восстанавливает данные из пакета, и я не знаю почему. Вот мои методы для сохранения и восстановления состояния, но ни один работает:

@Override 
protected void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    //requestWindowFeature(Window.FEATURE_ACTION_BAR); 
    setContentView(R.layout.activity_main); 
    if (bundle!= null){ 
     lat = bundle.getDouble("lat1",0); 
     lon = bundle.getDouble("lon1",0); 
     ne3 = bundle.getDouble("lat2",-200); 
     ne4 = bundle.getDouble("lon2",-200); 
     Log.d("tag","bundle is not null"); 
    } 
    setUpMapIfNeeded(); 
} 
@Override 
public void onPause() { 
    super.onPause(); 
    manager.removeUpdates(this); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    if (bundle!= null){ 
     lat = bundle.getDouble("lat1",0); 
     lon = bundle.getDouble("lon1",0); 
     ne3 = bundle.getDouble("lat2",-200); 
     ne4 = bundle.getDouble("lon2",-200); 
     Log.d("tag","bundle is not null"); 
    } 
    setUpMapIfNeeded(); 
} 
@Override 
protected void onSaveInstanceState(Bundle bundle) { 
    Log.e("tag","calling onSave"); 
    if(mMap!=null){ 
    LatLngBounds location3 = mMap.getProjection().getVisibleRegion().latLngBounds; 
    double lat4 = location3.getCenter().latitude; 
    double lon4 = location3.getCenter().longitude; 
    double lat5 = location3.northeast.latitude; 
    double lon5 = location3.northeast.longitude; 
    bundle.putDouble("lat1", lat4); 
    bundle.putDouble("lon1",lon4); 
    bundle.putDouble("lat2",lat5); 
    bundle.putDouble("lon2",lon5); 
    } 
    super.onSaveInstanceState(bundle); 
} 
@Override 
public void onRestoreInstanceState(Bundle bundle) { 
    super.onRestoreInstanceState(bundle); 
    if (bundle!= null){ 
     lat = bundle.getDouble("lat1",0); 
     lon = bundle.getDouble("lon1",0); 
     ne3 = bundle.getDouble("lat2",-200); 
     ne4 = bundle.getDouble("lon2",-200); 
     Log.d("tag","bundle is not null"); 
    } 
    setUpMapIfNeeded(); 
    // ... recover more data 
} 

Проблема, кажется, что пачка каким-то образом нуль при возвращении из другой деятельности

ответ

0

Проблема заключалась в том, что карта Автоцентрирование себя перед запуском onSavedInstanceState(), поэтому я сохранил центрированные данные, поэтому он не работал.

Смежные вопросы