savedInstanceState podczas przywracania fragmentu z tylnego stosu
Mogę uzyćsavedInstanceState()
aby zapisać stan podczas usuwania fragmentu, a następnie przywrócić stan, gdy wyrzucę fragment z tylnego stosu? Kiedy przywracam fragment ze stosu wstecznego, pakiet savedInstanceState jest zawsze pusty.
W tej chwili przepływem aplikacji jest: utworzony fragment -> usunięty fragment (dodany do tylnego stosu) -> fragment przywrócony z tylnego stosu (pakiet savedInstanceState ma wartość NULL).
Oto odpowiedni kod:
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);
}
Myślę, że problem polega na tymonSavedInstanceState()
nigdy nie jest wywoływany podczas usuwania i dodawania do stosu wstecznego. Jeśli nie mogę użyć onsavedInstanceState (), czy istnieje inny sposób, aby to naprawić?