How to exit when back button is pressed? How to exit when back button is pressed? android android

How to exit when back button is pressed?


In my Home Activity I override the "onBackPressed" to:

@Overridepublic void onBackPressed() {   Intent intent = new Intent(Intent.ACTION_MAIN);   intent.addCategory(Intent.CATEGORY_HOME);   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   startActivity(intent); }

so if the user is in the home activity and press back, he goes to the home screen.

I took the code from Going to home screen Programmatically


Immediately after you start a new activity, using startActivity, make sure you call finish() so that the current activity is not stacked behind the new one.

EDITWith regards to your comment:

What you're suggesting is not particularly how the android app flow usually works, and how the users expect it to work. What you can do if you really want to, is to make sure that every startActivity leading up to that activity, is a startActivityForResult and has an onActivityResult listener that checks for an exit code, and bubbles that back. You can read more about that here. Basically, use setResult before finishing an activity, to set an exit code of your choice, and if your parent activity receives that exit code, you set it in that activity, and finish that one, etc...


A better user experience:

/** * Back button listener. * Will close the application if the back button pressed twice. */@Overridepublic void onBackPressed(){    if(backButtonCount >= 1)    {        Intent intent = new Intent(Intent.ACTION_MAIN);        intent.addCategory(Intent.CATEGORY_HOME);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        startActivity(intent);    }    else    {        Toast.makeText(this, "Press the back button once again to close the application.", Toast.LENGTH_SHORT).show();        backButtonCount++;    }}