活动导航

时间:2017-03-20 18:32:02

标签: android navigation

我是创建Android应用程序的新手,我正在尝试做一些看起来应该很简单的事情,但即使在这里搜索后我也似乎找不到办法做我想要的......

我有2项活动(A和B)。活动A有一个启动活动B的导航按钮,活动B有一个启动活动A的导航按钮。两个都是用这样的代码实现的:

Intent intent = new Intent(this, ActivityB.class);
startActivity(intent);

如果我启动了我的应用程序并且活动A在屏幕上,然后我按下后退键,应用程序就像我想要的那样“消失”。

到目前为止,非常好。

但是,如果我启动我的应用程序,并使用导航按钮从A切换到B然后从B切换回A然后按后退键,则会显示活动B.我想要的是,每当我按下活动A的后退键时,我希望我的应用程序“离开”,就像我还没有从活动A中导航一样。可以这样做吗?

3 个答案:

答案 0 :(得分:0)

尝试以下代码:

Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent);
finish();

答案 1 :(得分:0)

为此,请在ActivityB中的导航按钮中执行以下操作:

Intent intent = new Intent(this, ActivityB.class);
intent.setFlags(FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();

这会使您的ActivityA实例出现在前面,而不是创建一个新实例。通过完成ActivityB,后退按钮将使应用程序“消失”#34;。

答案 2 :(得分:0)

使用Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP标志

Intent a = new Intent(this,ActivityA.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(a);

现在每当我们回到A时,A之上的所有内容都会被清除,再次将其设置为根活动。

好读 https://developer.android.com/guide/components/activities/tasks-and-back-stack.html