Android: Quit application when press back button
When you press back and then you finish your current activity(say A), you see a blank activity with your app logo(say B), this simply means that activity B which is shown after finishing A is still in backstack, and also activity A was started from activity B, so in activity, You should start activity A with flags as
Intent launchNextActivity;launchNextActivity = new Intent(B.class, A.class);launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);startActivity(launchNextActivity);
Now your activity A is top on stack with no other activities of your application on the backstack.
Now in the activity A where you want to implement onBackPressed to close the app, you may do something like this,
private Boolean exit = false;@Override public void onBackPressed() { if (exit) { finish(); // finish activity } else { Toast.makeText(this, "Press Back again to Exit.", Toast.LENGTH_SHORT).show(); exit = true; new Handler().postDelayed(new Runnable() { @Override public void run() { exit = false; } }, 3 * 1000); } }
The Handler here handles accidental back presses, it simply shows a Toast
, and if there is another back press within 3 seconds, it closes the application.
Try this:
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//***Change Here*** startActivity(intent); finish(); System.exit(0);
I had the Same problem, I have one LoginActivity and one MainActivity.If I click back button in MainActivity, Application has to close.SO I did with OnBackPressed method. this moveTaskToBack() work as same as Home Button. It leaves the Back stack as it is.
public void onBackPressed() { // super.onBackPressed(); moveTaskToBack(true);}