我有两项必须共同生活或死亡的 Activity 。基本上,AlphaActivity会做一些工作,然后为BetaActivity调度一个意图(startActivityForResult())。完成BetaActivity后,我希望它为GammaActivity调度一个意图(startActivity()),然后对其自身调用finish()。完成后,我希望调用AlphaActivity的onActivityResult()方法,但这似乎从未发生。我的设计是在AlphaActivity的onActivityResult()中,我将其称为finish()。我的计划是,一旦达到GammaActivity,用户将永远无法返回AlphaActivity或BetaActivity。但是目前,后退按钮确实会将用户带到AlphaActivity。

我确实有一些想法,为什么它不起作用,但是在这里讨论它们是没有意义的,因为我对可能真正起作用的东西感兴趣。

编辑:

该代码都是非常标准的东西:

从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();
        }
    }
}

从Beta内部:
if (success) {
            startGammaActivity();
            finish();
        }

最佳答案

我认为您只需要:

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

07-27 17:15