Finish an activity from another activity

android, android-activity, android-intent

Solution

Make your activity A in manifest file: `launchMode = "singleInstance"`

When the user clicks new, do `FirstActivity.fa.finish();` and call the new Intent.

When the user clicks modify, call the new Intent or simply finish activity B.

FIRST WAY

In your first activity, declare one `Activity object` like this,

public static Activity fa;
onCreate()
{
    fa = this;
}

now use that object in another `Activity` to finish first-activity like this,

onCreate()
{
    FirstActivity.fa.finish();
}

SECOND WAY

While calling your activity `FirstActivity` which you want to finish as soon as you move on, You can add flag while calling `FirstActivity`

intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

But using this flag the activity will get finished evenif you want it not to. and sometime `onBack` if you want to show the `FirstActivity` you will have to call it using intent.

Problem

I want to finish one activity from another activity, like: In Activity [A], on button click, I am calling Activity [B] without finishing Activity [A]. Now in Activity [B], there are two buttons, New and Modify. When the user clicks on modify then pop an activity [A] from the stack with all the options ticked.. But when the user click on New button from Activity [B], then I will have to finish Activity [A] from the stack and reload that Activity [A] again into the stack. I am trying it, but I am not able to finish Activity [A] from the stack... How can I do it? I am using the code as: From Activity [A]: ``` Intent GotoB = new Intent(A.this,B.class); startActivityForResult(GotoB,1); ``` Another method in same activity ``` public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 1) { if (resultCode == 1) { Intent i = getIntent(); overridePendingTransition(0, 0); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); finish(); overridePendingTransition(0, 0); startActivity(i); } } } ``` And in Activity [B], on button click: ``` setResult(1); finish(); ```

Original source

Related problems