Android -Почему использование onSaveInsanceState ()для сохранения растрового объекта не вызывается?

Я делаю простое приложение для рисования.

Я хочу иметь возможность сохранять рисунок пользователя на экране при изменении ориентации устройства. Это происходит только в основной деятельности.

Я читал, что если ориентация меняется, то активность уничтожается и создается заново(onCreate(Bundle created)называется ). Я не уверен, означает ли это, что он также должен вызывать onSavedInstanceState(Bundle bundle), потому что в моем приложении он вызывается только в том случае, если другое действие получает фокус поверх моего основного действия, но не при повороте в альбомную/портретную.

Я просто ищу способ сохранить существующее растровое изображение и передать его основному действию при изменении ориентации. Как я могу это сделать, если мой onSaveInstanceStateникогда не вызывается?

Кроме того, поскольку Bitmap уже реализует parceable, я использовал его.

Вот код основного действия:

 public void onCreate(Bundle savedInstanceState) {      
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
// some more activity code...

        if (savedInstanceState != null) {
        bitmap = savedInstanceState.getParcelable("bitmap");
        Log.d("STATE-RESTORE", "bitmap created");
        paintBoard.setBitmapBackground(bitmap, false);
        Log.d("RESTORING...", "onRestoreInstanceState()");
    } else {
        Log.d("SavedInstanceState", "null");
    }
}


// Never called when I change orientation on my device
@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    bitmap = Bitmap.createBitmap(paintBoard.getBitmap());
    outState.putParcelable("bitmap", bitmap);
    Log.d("STATE-SAVE", "onSaveInstanceState()");
}

Любая помощь будет оценена.

РЕДАКТИРОВАТЬ:

Я удалил эту строку из файла AndroidManifest.xml :

android:configChanges="orientation"

. и теперь onSaveInstanceState()вызывается, когда я меняю ориентацию на устройстве.

6
задан Shahar 5 July 2012 в 18:53
поделиться