savedInstanceState ao restaurar fragmento da pilha de trás
Eu posso usarsavedInstanceState()
salvar o estado ao remover um fragmento, em seguida, restaurar o estado quando eu estourar o fragmento da pilha de trás? Quando eu restaurar o fragmento da pilha de trás, o pacote savedInstanceState é sempre nulo.
No momento, o fluxo do aplicativo é: fragmento criado -> fragmento removido (adicionado à pilha de retorno) -> fragmento restaurado da pilha de retorno (o pacote savedInstanceState é nulo).
Aqui está o código relevante:
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);
}
Eu acho que o problema é queonSavedInstanceState()
nunca é chamado ao ser removido e adicionado à pilha de retorno. Se eu não posso usar onsavedInstanceState (), existe outra maneira de corrigir isso?