1

我正在开发一个有 4 个活动的 Android 应用程序:

A -> B -> C -> D

当我从 A 到 B、从 B 到 C 或从 C 到 D 时,我在 Intent 中添加了一些额外内容。

我想这样的导航非常简单:不需要重新定义后退按钮,对于“向上”操作栏按钮,一个简单的“完成()”将是正确的方法(?)

现在,问题是从A,我也可以直接到D。仍然不需要重新定义后退按钮,它会回到A,这就是我想要的,但是对于“向上”按钮,它必须去到 C,然后从 C,向上将导致 B,...

这样做的正确方法是什么?

感谢您的回答

4

3 回答 3

0

一种方法是实际上拥有相同的堆栈,但使用附加功能来执行切换。

例如:当您想从 A -> D 转到 A->B->C->D 并使用意图来处理您是否想简单地绕过活动或显示它时。与此相反的用户结果意图也是如此。

于 2012-11-28T12:00:14.020 回答
0

为了显式控制各种活动之间的流程,当我通过启动一个新活动来响应用户输入时,我会调用finish()每个活动:

startActivity(intentForNewActivity);
finish();

这导致原始 Activity 的该实例被破坏。在每个活动中,我都会创建一个 Intent 来启动我想要返回的活动。然后写:

@Override public void onBackPressed() {
    startActivity(intentWhereIWantToGoNext);
    finish();
}

我最初在这里写道,我在 onStop() 中调用了 finish(),它在应用程序保持运行时确实有效,但如果应用程序因任何原因停止,则不会给出所需的结果。很抱歉造成混乱,并感谢 PravinCG,虽然他的评论并不完全正确,但至少让我思考得更仔细了。

于 2012-11-28T12:07:00.070 回答
0

将以下代码放在最后一个括号之前。

@Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        finish();
    }
于 2012-11-28T12:10:13.260 回答