ViewModel é criado novamente para o fragmento
Crio o viewmodel no MainFragment:
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
...
MainViewModel mainViewModel = ViewModelProviders.of(this).get(MainViewModel.class);
...
}
Quando o usuário seleciona o item e depois navega para o fragmento Detalhes, essa transação é adicionada ao backstack.
getFragmentManager()
.beginTransaction()
.replace(R.id.root, Details.newInstance())
.addToBackStack(null)
.commit();
Quando o usuário pressionar novamente no fragmento Detalhes, tudo estará ok, mas se o usuário girar o dispositivo no fragmento Detalhes e pressionar novamente:
nova instância do ViewModel é criada para MainFragmenta instância antiga ainda está ativa (o método onCleared não é chamado)Isso é um bug no ViewModelProviders? Como consertar isto? Na minha opinião, o ViewModel deve ser restaurado.