'L'exception IllegalStateException: l'Activité a été détruit "quand" getSupportFragmentManager()' appelé après le redémarrage de l'Activité

J'ai un parent Fragment de l'Activité qui a un ViewPager qui contient un enfant ViewPager. L'enfant ViewPager contient des Fragments de chaque page. Je communique entre l'enfant ces fragments de page et le haut parent Fragment de l'Activité à l'aide d'une interface de rappel par exemple

public interface Callbacks {
    public void onItemSelected(Link link);
}

Dans le parent Fragment d'Activité j'écoute pour onItemSelected événements par exemple

@Override
public void onItemSelected(Link link) {
    Bundle argumentsFront = new Bundle();
    argumentsFront.putParcelable(FragmentComments.ARG_ITEM_ID, link);
    fragmentComments = new FragmentComments();
    fragmentComments.setArguments(argumentsFront);
    getSupportFragmentManager().beginTransaction().replace(R.id.post_container, fragmentComments).commitAllowingStateLoss();
}

Maintenant cela fonctionne bien lorsque l'application est lancé pour la première fois.

Si vous tournez l'appareil pour changer l'orientation de l'Activité redémarre. Tous les fragments de réinitialiser eux-mêmes, comme je l'ai utiliser setRetainInstance(true); (je n'appelle pas setRetainInstance(true) dans la page des Fragments de l'enfant ViewPager comme il n'est pas pris en charge). Cependant, si je clique sur un élément de liste dans le Fragment de l'enfant ViewPager-je obtenir cette exception:

FATAL EXCEPTION: main
java.lang.IllegalStateException: Activity has been destroyed
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1342)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
at android.support.v4.app.BackStackRecord.commitAllowingStateLoss(BackStackRecord.java:578)

Personne ne sait pourquoi cela se produit?

Grâce

OriginalL'auteur Milo | 2013-02-10