Android: Impossible d'effectuer cette action après onSaveInstanceState

Je suis apparemment toujours pas clair sur la manipulation de fragments de concert avec d'autres choses qui se passent dans mon activité. Ce qui suit est la trace de la pile:

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { (has extras) }} to activity {com.ghcssoftware.gedstar/com.ghcssoftware.gedstar.GedStar}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.app.ActivityThread.deliverResults(ActivityThread.java:2747)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:2790)
at android.app.ActivityThread.access$2000(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1035)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4028)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1299)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1310)
**at android.support.v4.app.FragmentManagerImpl.popBackStack(FragmentManager.java:471)
at com.ghcssoftware.gedstar.PersonTab$PersonTabFrag.popStack(PersonTab.java:157)**
at com.ghcssoftware.gedstar.PersonTab$PersonTabFrag.fillData(PersonTab.java:165)
at com.ghcssoftware.gedstar.ViewTab.fillData(ViewTab.java:96)
at com.ghcssoftware.gedstar.GedStar.fillData(GedStar.java:589)
at com.ghcssoftware.gedstar.GedStar.onActivityResult(GedStar.java:514)
at android.app.Activity.dispatchActivityResult(Activity.java:4541)
at android.app.ActivityThread.deliverResults(ActivityThread.java:2743)

Si cela ressemble, c'est mon appel à popBackStack dans cette fonction où je suis le nettoyage de tout empilées les fragments dans une de mon point de vue volets:

    //Pop fragments from second pane
private void popStack() {
if (mDualPane && mBottomId >= 0) {
mViewTab.getTabHelper().tabGetFragManager().popBackStack(mBottomId, 
FragmentManager.POP_BACK_STACK_INCLUSIVE);
mBottomId = -1;
}
}

Surtout, je ne sais pas pourquoi tout de ce qui se passe "après onSaveInstanceState" a été appelé, ou si c'est ce qui se passe vraiment. Toutes les explications possibles? Serait popBackStackImmediate faire une différence?

Pour ce que ça vaut, je n'ai pas été en mesure de recréer les circonstances dans mes tests, il est donc seulement à apparaître dans les rapports.

source d'informationauteur gordonwd