Ich verwendete die Commit-Methode in meinem Projekt, die es mit Fragmenten baute.Was ist der Unterschied zwischen commit() und commitAllowingStateLoss() in den Fragmenten
Wie auch immer, manchmal bekam ich IllegalStateException: Can not perform this action after onSaveInstanceState
Fehler und ich konnte keine gute Lösung darüber finden, aber nur diese Methode commitAllowingStateLoss()
. Ich habe die Commit-Funktion auf commitAllowingStateLoss()
geändert, habe sie aber nicht lange benutzt, um zu testen. Kann mir diese Funktion helfen? Und die Hauptfrage, was ist der Unterschied zwischen commit()
und commitAllowingStateLoss()
?
Der Unterschied ist subtiler als das. 'commit()' kann ein Ausnahmeereignis auslösen, wenn kein Statusverlust auftreten würde. Zum Beispiel gibt 'commit()' immer eine Exception aus, wenn sie von 'LoaderCallbacks.onLoadFinished()' aufgerufen wird, selbst in Fällen, in denen 'commitAllowingStateLoss()' Transaktionen ohne Statusverlust speichert. Natürlich kann _sometimes_ state bei der Verarbeitung von 'onLoadFinished()' nicht gespeichert werden. –