web-dev-qa-db-fra.com

Quelle est la différence entre commit () et commitAllowingStateLoss () dans les fragments

J'utilisais la méthode commit dans mon projet qui l'a construit avec des fragments.

Quoi qu'il en soit, parfois j'obtenais l'erreur IllegalStateException: Can not perform this action after onSaveInstanceState Et je ne pouvais pas trouver de bonne solution à ce sujet, mais juste cette méthode commitAllowingStateLoss(). J'ai changé la fonction de validation en commitAllowingStateLoss() mais je ne l'ai pas utilisée longtemps pour tester, alors cette fonction peut-elle m'aider? Et la question principale, quelle est la différence entre commit() et commitAllowingStateLoss()?

42
Mert Aydin

Il n'y a qu'une seule différence entre commit() et commitAllowingStateLoss(): cette dernière ne lève pas d'exception en cas de perte d'état. En dehors de cela, ils ont un comportement identique.

Voir mon article de blog sur ce sujet pour plus d'informations.

90
Alex Lockwood