"Kann diese Aktion nach onSaveInstanceState nicht ausführen" - Warum erhalte ich diese Ausnahme von der onResume-Methode meiner Aktivität?

Meine Aktivität ruft die Kamera mit der Absicht ACTION_IMAGE_CAPTURE auf. Wenn die Kameraaktivität erfolgreich zurückgegeben wird, setze ich im Rückruf "onActivityResult" ein Flag und starte basierend auf dem Wert des Flags in "onResume" ein Fragment, um dem aufgenommenen Bild eine Beschriftung hinzuzufügen. Dies scheint in Ordnung zu funktionieren.

Ich habe gerade einen Stack-Trace von der "wilden" Beschwerde erhalten, dass ich versucht habe, eine Fragmenttransaktion festzuschreiben, nachdem onSaveInstanceState aufgerufen wurde. Aber ich mache das Commit in meiner onResume-Methode! Warum sollte sich Android darüber beschweren? Ich habeandroid: configChanges = "Ausrichtung | keyboardHidden | keyboard | screenSize" In meiner AndroidManifest.xml festgelegt, daher sollte eine Änderung der Ausrichtung dies nicht auslösen.

Dies trat auf einem Samsung Galaxy S3 (SGH-i747) auf, auf dem 4.0.4 ausgeführt wurde

Hier ist der Stapel:

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
    at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1314)
    at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1325)
    at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:548)
    at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:532)
    at com.Familiar.Android.FamiliarAppV1.AddPhotosActivity2.performFragmentTransition(AddPhotosActivity2.java:278)
    at com.Familiar.Android.FamiliarAppV1.AddPhotosActivity2.switchToCaptionsFragment(AddPhotosActivity2.java:438)
    at com.Familiar.Android.FamiliarAppV1.AddPhotosActivity2.onResume(AddPhotosActivity2.java:167)
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1158)
    at android.app.Activity.performResume(Activity.java:4544)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2448)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2486)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1187)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4514)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
    at dalvik.system.NativeStart.main(Native Method)

Jede Hilfe oder Weisheit wird geschätzt.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage