onActivityResult 中的完成活动不起作用

2024-06-01

我有一对必须同生共死的活动。基本上 AlphaActivity 会做一些工作,然后发送一个意图(startActivityForResult()) 对于 Beta 活动。当 Beta 活动完成时,我希望它发送一个意图(startActivity()) 对于 GammaActivity 然后调用finish()就其本身而言。完成后我希望 AlphaActivity 的onActivityResult()方法被调用,但这似乎永远不会发生。我的设计是这样的,在AlphaActivity的内部onActivityResult(), 我打电话finish()。我的计划是,一旦达到 GammaActivity,用户就无法返回 AlphaActivity 或 BetaActivity。但目前后退按钮确实会将用户带到 AlphaActivity。

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

EDIT:

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

从阿尔法内部

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();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

onActivityResult 中的完成活动不起作用 的相关文章

随机推荐