Actions dans onActivityResult et d'Erreur “ne Peut pas effectuer cette action après onSaveInstanceState”

La mise en œuvre d'une application où l'utilisateur peut se connecter, j'ai la situation suivante: Si l'utilisateur est connecté à effectuer l'action d'autre démarrer l'activité de connexion pour le résultat et, si le résultat est de l'Activité.RESULT_OK l'action.

Mon problème est que l'action à vérifier, c'est de montrer DialogFragment, mais en l'appelant

DialogFragment newFragment = MyDialogFragment.newInstance(mStackLevel);
newFragment.show(ft, "dialog")

dans le onActivityResult rappel déclenche une exception:

Caused by: java.lang.IllegalStateException:  
Can not perform this action after onSaveInstanceState

Alors, comment puis-je résoudre ce problème? Je suis en train de penser à lever un drapeau là et afficher la boîte de dialogue dans le onResume mais je vois que cette solution un peu sale

Edit: Ajout de code (Im suivant cet exemple pour montrer la DialogFragment

Lorsque l'action demandée par l'utilisateur:

... 
if (!user.isLogged()){
 startActivityForResult(new Intent(cnt, Login.class), REQUEST_LOGIN_FOR_COMMENT);
}

Dans le même fragment

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_LOGIN_FOR_COMMENT && resultCode == Activity.RESULT_OK) {
        FragmentTransaction ft = getFragmentManager().beginTransaction();
        DialogFragment newFragment = MyDialogFragment.newInstance();
        newFragment.show(ft, "dialog")
    }
}

Et si l'utilisateur se connecte à l'activité de Connexion des appels;

setResult(Activity.RESULT_OK);
finish();
  • je pense que vous devriez poster tout le code. Semble que vous essayez d'afficher la boîte de dialogue après onpause
  • Édité à la question 😀
  • Vérifier androiddesignpatterns.com/2013/08/... pour comprendre pourquoi ce qui se passe
InformationsquelleAutor Addev | 2012-08-24