Cannot perform this action after onSaveInstanceState - DialogFragment

I overridden onSavedInstanceState and deleted super, I do not do any transactions, not to mention transactions in volatile functions or asynchronous.

I call it in the 'onUserExistsListener' custom callback

        @Override
        public Boolean userExists(Boolean exists) {
            if (exists) {


            }
            else
            {
             AlertDialogFragment Frag = AlertDialogFragment.newInstance(0, null);
             Frag.show(getSupportFragmentManager(), "warndialog");
            }
   };

Have you tried everything that was suggested in other SO questions and didn't find a solution? Is anyone

code:

AlertDialogFragment Frag = AlertDialogFragment.newInstance(0, null);
 Frag.show(getSupportFragmentManager(), "warndialog");

Process:

OnCreate: (LoadNames function)

Callback LoadNames -> Show dialog.

Further:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        add_name_to_db();
    }

function:

public void add_name_to_db() {
        Details.checkNameExists(user_txt.getText().toString());
        Details.setOnUserExistsListener(new onUserExistsListener() {

            @Override
            public Boolean userExists(Boolean exists) {

                if (exists) 
                    {

                    } else {

                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                AlertDialogFragment Frag = AlertDialogFragment.newInstance(0, null);
                                Frag.show(getSupportFragmentManager(), "warndialog");

                            }

                        });

                    }
                } else {
                    Toast.makeText(getApplicationContext(), "This is not a valid KIK username",
                            Toast.LENGTH_SHORT).show();
                }

                return exists;
            }

        });

    }
+4
source share
3 answers

Causing Frag.show(getSupportFragmentManager(), "warndialog");, you are actually performing the fragment transaction (see. Show For () ).

onSaveInstanceState(), IllegalStateException. , , (.. OnPostResume()). . .

, loss;

+6

EDIT: super.onCreate(SavedInstanceState) onCreate(). .


onSaveInstanceState() , . UI .

, ? "", ?

onBackPressed() .

Android: onBackPressed()

EDIT. , , . onSaveInstanceState(). onCreate() onResume().

0

, , , :

runOnUiThread(new Runnable() {
    public void run() {
        AlertDialogFragment Frag = AlertDialogFragment.newInstance(0, null);
        Frag.show(getSupportFragmentManager(), "warndialog");

    }

});
-1

All Articles