savedInstanceState beim Wiederherstellen eines Fragments vom Backstack
Kann ich benutzensavedInstanceState()
Um den Status beim Entfernen eines Fragments zu speichern, stellen Sie den Status wieder her, wenn ich das Fragment vom Backstack lösche. Wenn ich das Fragment vom Backstack wiederherstelle, ist savedInstanceState-Bundle immer null.
Im Moment ist der Anwendungsfluss: Fragment erstellt -> Fragment entfernt (zum Backstack hinzugefügt) -> Fragment vom Backstack wiederhergestellt (SavedInstanceState-Bundle ist null).
Hier ist der relevante Code:
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);
}
Ich denke das Problem ist dasonSavedInstanceState()
wird beim Entfernen und Hinzufügen zum Backstack nie aufgerufen. Wenn ich onsavedInstanceState () nicht verwenden kann, gibt es eine andere Möglichkeit, dies zu beheben?