【发布时间】:2013-04-18 17:23:53
【问题描述】:
我有两项活动必须共同生存或共同死亡。基本上 AlphaActivity 做了一些工作,然后为 BetaActivity 发送一个意图 (startActivityForResult())。当 BetaActivity 完成后,我希望它为 GammaActivity 发送一个意图 (startActivity()),然后自行调用 finish()。完成后,我希望调用 AlphaActivity 的 onActivityResult() 方法,但这似乎永远不会发生。我的设计是在 AlphaActivity 的onActivityResult() 中调用finish()。我的计划是,一旦达到 GammaActivity,用户将永远无法返回 AlphaActivity 或 BetaActivity。但目前后退按钮确实会将用户带到 AlphaActivity。
我确实有一些想法为什么它不起作用,但在这里讨论它们是没有意义的,因为我对什么可能真正起作用感兴趣。
编辑:
代码都是很标准的东西:
从阿尔法内部
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();
}
【问题讨论】:
-
你描述的应该可以。你能在你开始 BetaActivity 的地方发布代码然后完成它吗?
-
您需要对来自
BetaActivity的结果进行处理吗?为什么AlphaActivity启动时不能finish()BetaActivity?
标签: android android-intent android-activity back activity-finish