我是创建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中导航一样。可以这样做吗?
答案 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