I\'ve got 4 activities say Act1
, Act2
, Act3
and Act4
.
A button in Act1 opens Act2, a button in Act2 opens Act3, a button in A
Use below code in your Act4
'th Menu.xml
's exit button -
Intent intent = new Intent(Act4.this, Act1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
And, in your first activity's onCreate()
method just put the below code -
if (getIntent().getBooleanExtra("EXIT", false))
{
finish();
}
This will exit your app.
finish previous activity when you are go to the next activity means write finish();
after startactivity(intent);
and write below code for start first activity from fourth activity's button click event.
Intent in1=new Intent(Act4.this, Act1.class);
startActivity(in1);
finish();
And Write Below Code on Your Exit Button's Click event in all activities.
finish();
Place this code in your app:
moveTaskToBack(true);
android.os.Process.killProcess(Process.myPid());
System.exit(1);
Start Activity1
using intent and try calling finishAffinity()
in onBackPressed()
of Activity1
.
The approach I use is to start all child activities with startActivityForResult
. Then I can putExtra("STATE", some_value) on exiting any child and use the state value to determine what to do up through the parents.
If I want to exit the app from a deep child, "STATE" would be "exit" and each child in the hierarchy would simply get the StringExtra for "exit", do a putExtra("STATE", "exit") and call finish() and then the app would call finish() in the end. You can use this to achieve any desired state.
Using startActivityForResult to pass messages this way avoids having to pass awkward references down into the child activities and simplifies your approach to setting the desired state of the app.
I use this method :
1. Create static activity in the first activity that will close the
remaining activity(s).
2. Then call it in the static method like this, it will close the app from wherever you call it.
public static Activity activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activity=this;
}
public static void CloseApp(){
activity.finish();
}