Ad

AlertDialog OnBackPressed() Not Working Properly

- 1 answer

I've written the following code for simple Alert Dialog but Alert Dialog doesn't show up. API: 26

 @Override
    public void onBackPressed() {
        super.onBackPressed();

    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setMessage("Are You sure to Exit?")
            .setTitle("Exit")
            .setCancelable(false)
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    MainActivity.super.onBackPressed();
                }
            })
            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {

                }
            });

    AlertDialog alert = builder.create();
    alert.show();
}

I'm extremely new to android and Testing it's features. I've worked for 30 minutes on this little code to debug it and used different phones in emulator as well as External Phones but failed. Then i decided to put this code on stackoverflow.

Ad

Answer

Use this code for exit or closing app programically

@Override
    public void onBackPressed() {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
        alertDialogBuilder.setTitle("Exit Application?");
        alertDialogBuilder
                .setMessage("Click yes to exit!")
                .setCancelable(false)
                .setPositiveButton("Yes",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                moveTaskToBack(true);
                                android.os.Process.killProcess(android.os.Process.myPid());
                                System.exit(1);
                            }
                        })

                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {

                        dialog.cancel();
                    }
                });

        AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
    }
Ad
source: stackoverflow.com
Ad