Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Finish all activities when back button is pressed

I have an android application that has 3 activites. For the 1st and 2nd activity I want the back button to exit all existing activities.

At the moment the back button is exiting the activity it is initiated on but if its pressed on the 2nd activity, the 1st activity will be displayed, rather than exiting the application as the 1st activity leads on to the 2nd.

The reason I require this functionality is because the 1st and 2nd activities use chronometer timers which continue to run when the HOME button is presssed which I want. But I need a way to reset the timers to fully exit the application using the BACK button.

Here is my code for the back button which in present in both the 1st and 2nd activities.

@Override
 public void onBackPressed() { // method for exit confirmation
  AlertDialog.Builder builder = new AlertDialog.Builder(BreakActivity.this);
  builder.setMessage("Are you sure you want to exit?")
         .setCancelable(false)
         .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int id) {
                  BreakActivity.this.finish();
             }
         })
         .setNegativeButton("No", new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int id) {
                  dialog.cancel();
             }
         });
  AlertDialog alert = builder.create();
  alert.show();

        }         
  };  

I have researched the possibility of using the following code:

intent = new Intent(this, FinActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent)
finish();

However, I'm not sure where this should be implemented and I really only want to end all the applications if 'Yes' is selected after the confirmation message is displayed after the BACK button is pressed (see first code snippet).

Any help in getting this working would be greatly appreciated!

Thank you

like image 807
Rob Avatar asked Dec 02 '22 23:12

Rob


1 Answers

@Rob when you are navigating from activity 1 to 2 and 2 to 3 with intent use finish function

like

 i=new Intent(Main_Menu.this, ABC.class);
          finish();
         startActivity(i);

It will kill the activity from which you will go to next activity and then when you press the backbutton it will take you outside the application , because there will be no activity in the stack

like image 85
Avi Dhiman Avatar answered Dec 10 '22 13:12

Avi Dhiman