Search code examples
androidandroid-activity

Finish parent and current activity in Android


I have 3 activities. Activity A which leads to activity B, which in turn can go back to activity A or start activity C. However, if I press back in activity C the app should close.

To sum up:

  • Activity A starts activity B
  • Pressing Back on activity B should lead to A
  • Activity B starts activity C
  • Pressing Back on activity C should close the app

How should I go from activity B to C? This code currently gives me a NullPointerException on the last line:

Intent intent=new Intent(ActivityB.this, ActivityC.class);
startActivity(intent);
ActivityB.this.finish();
ActivityB.this.getParent().finish();

If I switch the last two lines I also get a null pointer.


Solution

  • I don't know if this will work, but you could try it:

    • From Activity A, start activity B for a result using startActivityForResult()

    • In Activity B, when the user triggers Activity C, start activity C.

    startActivity() returns immediately, so

    • set a result that will inform A to finish as well,

    • Call finish() in B.

    • When A receives that result from B, A calls finish() on itself as well.

    Failing that, you could make Activity C into its own app and then close the first app (with A & B) after it starts the second.

    P.S. Take Falmarri's comment into consideration as you move forward!
    Good luck.