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.

questionAnswers(3)

yourAnswerToTheQuestion