je crée viewmodel dans MainFragment:ViewModel est créé à nouveau pour le fragment
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
...
MainViewModel mainViewModel = ViewModelProviders.of(this).get(MainViewModel.class);
...
}
Lorsque l'utilisateur sélectionner un élément puis accédez au fragment Détails, cette opération est ajoutée à backstack.
getFragmentManager()
.beginTransaction()
.replace(R.id.root, Details.newInstance())
.addToBackStack(null)
.commit();
Lorsque l'utilisateur appuie sur retour dans le fragment Détails, tout est ok, mais si l'utilisateur tourne dispositif dans le fragment Détails et appuyez à l'époque:
- nouvelle instance de ViewModel est créé pour MainFragment
- vieux par exemple est encore en vie (méthode onCleared pas appelée)
est-ce un bogue dans ViewModelProviders? Comment régler ceci? À mon avis ViewModel devrait être restauré.
Avez-vous trouvé une solution à cela? – SqueezyMo