Можно ли использовать savedInstanceState()
для сохранения состояния при удалении фрагмента, а затем восстановить состояние, когда я вытащил фрагмент из заднего стека? Когда я восстанавливаю фрагмент из заднего стека, пакет savedInstanceState всегда имеет значение null.
В настоящий момент поток приложений: созданный фрагмент → удаленный фрагмент (добавлен в задний стек) → восстановлен фрагмент из заднего стека (пакет savedInstanceState равен 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(), есть ли другой способ исправить это?