ViewModel se crea nuevamente para el fragmento

Creo viewmodel en MainFragment:

 @Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
   ...
    MainViewModel mainViewModel = ViewModelProviders.of(this).get(MainViewModel.class);
   ...
}

Cuando el usuario selecciona el elemento y luego navega al fragmento Detalles, esta transacción se agrega al backstack.

 getFragmentManager()
                .beginTransaction()
                .replace(R.id.root, Details.newInstance())
                .addToBackStack(null)
                .commit();

Cuando el usuario presiona hacia atrás en el fragmento Detalles, todo está bien, pero si el usuario gira el dispositivo en el fragmento Detalles y presiona hacia atrás, entonces:

Se crea una nueva instancia de ViewModel para MainFragmentla instancia anterior sigue viva (método onCleared no llamado)

¿Es esto un error en ViewModelProviders? ¿Cómo arreglar esto? En mi opinión, ViewModel debería ser restaurado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta