saveInstanceState при восстановлении фрагмента из заднего стека

Могу ли я использовать saveInstanceState()для сохранения состояния при удалении фрагмента, а затем восстанавливать состояние, когда я извлекаю фрагмент из заднего стека ? Когда я восстанавливаю фрагмент из заднего стека, пакет saveInstanceState всегда равен нулю.

Прямо сейчас поток приложения выглядит следующим образом: фрагмент создан -> фрагмент удален (добавлен в резервный стек) -> фрагмент восстановлен из резервного стека (пакет saveInstanceState имеет значение null).

Вот соответствующий код:

public void onActivityCreated(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Bundle bundle = getArguments();
    Long playlistId = bundle.getLong(Constants.PLAYLIST_ID);
    int playlistItemId = bundle.getInt(Constants.PLAYLISTITEM_ID);

    if (savedInstanceState == null) {
       selectedVideoNumber = playlistItemId;
    } else {
       selectedVideoNumber = savedInstanceState.getInt("SELECTED_VIDEO");
    }
}

public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt(Constants.SELECTED_VIDEO, selectedVideoNumber);
    }

Я думаю, проблема в том, что onSavedInstanceState()никогда не вызывается при удалении и добавлении в задний стек. Если я не могу использовать onsavedInstanceState(), есть ли другой способ исправить это?

36
задан heero 20 June 2012 в 01:22
поделиться