finish activity in onActivityResult does not work

activity-finish, android, android-activity, android-intent, back

Solution

I think you just need to:

if (success) {
        startGammaActivity();
        setResult(Activity.RESULT_OK); //add this
        finish();
}

Problem

I have a pair of activities that must live or die together. Basically AlphaActivity does some work and then dispatches an intent (`startActivityForResult()`) for BetaActivity. When BetaActivity is done, I want it to dispatch an intent (`startActivity()`) for GammaActivity and then call `finish()` on itself. Upon finishing I was hoping for AlphaActivity's `onActivityResult()` method to be called, but that never seems to happen. My design is such that inside AlphaActivity's `onActivityResult()`, I call `finish()`. My plan is such that once GammaActivity is reached, a user cannot ever return to either AlphaActivity or BetaActivity. But presently the back button does take the user to the AlphaActivity. I do have some ideas why it's not working, but discussing them here is pointless since I am interested in what might actually work. EDIT: The code is all quite standard stuff: From inside Alpha ``` private void startBetaActivity() { Intent intent = new Intent(this, BetaActivity.class); startActivityForResult(intent, Constant.EXIT_CODE); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { if (requestCode == Constant.EXIT_CODE) { this.finish(); } } } ``` From inside Beta: ``` if (success) { startGammaActivity(); finish(); } ```

Original source