我正在开发一个包含4项活动的Android应用程序:
A - > B - > C - > d
当我从A到B,从B到C,或从C到D时,我在意图中添加了一些额外内容。
我想这样的导航非常简单:没有必要重新定义后退按钮,而对于“向上”操作栏按钮,一个简单的“完成()”将是纠正这样做的方式(? )
现在,问题是从A,我也可以直接进入D.仍然无需重新定义后退按钮,它将返回到A,这就是我想要的,但对于“向上”按钮,它必须转到C,然后从C,up将导致B,......
这样做的正确方法是什么?
感谢您的回答
答案 0 :(得分:0)
其中一种方法是实际拥有相同的堆栈,但使用额外的东西来执行切换。
For Instance:当你想要从A - >; d 从A-> B-> C-> D开始并使用意图来处理您是想简单地绕过活动还是显示它。反向用户resultIntent的情况也是如此。
答案 1 :(得分:0)
为了明确控制各种活动之间的流程,当我通过开始一项新活动回应用户输入时,我在每个活动中调用finish()
:
startActivity(intentForNewActivity);
finish();
这会导致orignal Activity的实例被破坏。在每个活动中,我创建一个Intent来启动我想要返回的活动。然后写:
@Override public void onBackPressed() {
startActivity(intentWhereIWantToGoNext);
finish();
}
我最初在这里写道,我在onStop()中调用了finish(),它在应用程序保持运行时工作,但如果应用程序因任何原因停止,则无法提供所需的结果。对于这种困惑感到抱歉,感谢PravinCG,虽然他的评论并没有完全走上正轨,但至少让我更仔细地思考。
答案 2 :(得分:0)
将以下代码放在最后一个括号之前。
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
finish();
}