У меня есть приложение, которое использует карты 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
}
Проблема, кажется, что пачка каким-то образом нуль при возвращении из другой деятельности