Android 按“后退”按钮导航到菜单
我从以下位置导航:Android 按“后退”按钮导航到菜单,android,android-activity,Android,Android Activity,我从以下位置导航: 主要活动至活动2 活动2至活动3 活动3至活动4 通过意图 我还创建了菜单,以便用户可以直接从活动4导航到主要活动但在使用菜单从活动4导航到主活动后,当我按back键时,它会将我带到活动3,而不是退出应用程序 我试过: @Override public void onBackPressed() { super.onBackPressed(); MainActivity.this.finish(); } 但没有收获。有什么建议吗?使用标志Intent。标志
至主要活动
活动2
至活动2
活动3
至活动3
活动4
意图
我还创建了菜单,以便用户可以直接从活动4
导航到主要活动
但在使用菜单从
活动4
导航到主活动
后,当我按back键时,它会将我带到活动3
,而不是退出应用程序
我试过:
@Override
public void onBackPressed() {
super.onBackPressed();
MainActivity.this.finish();
}
但没有收获。有什么建议吗?使用标志Intent。标志活动\u清除\u顶部与您的意图一致。更多细节-
您可以设置flag
Intent。flag\u ACTIVITY\u CLEAR\u TOP
以完成所有中间活动,您调用的活动将位于活动堆栈的顶部。从第四个活动导航到主活动时,只需尝试此代码即可
Intent inMain=new Intent(Activity4.this, MainActivity.class);
inMain.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(inMain);
注:
在您的情况下,此代码将清除以前的活动,并启动主活动,但后台没有活动。使用clear top标志调用startActivity方法
startActivity(new Intent(this, UI.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK));
在活动2和3中,在调用
startActivity(intent)
后,调用this.finish()
。这也是一个解决方案。 你需要更仔细地考虑你的“。” 确切地说,您的后堆栈将按如下方式填充:
Main activity -> Activity 2 -> Activity 3 -> Activity 4
然后从活动4
启动主活动。因此,堆栈变为:
Main activity -> Activity 2 -> Activity 3 -> Main Activity
因此,当您按back键时,您将在活动3
中着陆
解决方案:
当您离开每个活动时,可以调用finish()
。或者使用Intent.FLAG\u ACTIVITY\u CLEAR\u TOP
清除所有中间活动
更多信息。完成上一个活动当您转到下一个活动时,表示写入Finish()代码>之后<代码>开始触觉(意图)代码>并在下面编写从第四个活动的按钮单击事件开始第一个活动的代码
Intent in1=new Intent(Act4.this, Act1.class);
startActivity(in1);
finish();
返回到main活动时
需要在Intent上使用Intent.FLAG\u ACTIVITY\u CLEAR\u TOP
。这是一个可以在活动中使用的goHome
方法示例:
public void goHome ()
{
Intent homeIntent = new Intent();
homeIntent.setClass(this, MainActivity.class);
homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(homeIntent);
}
请完成当前活动,转到其他活动。非常感谢大家。堆叠溢出的岩石!如果你得到的答案是,别忘了标记为acceptI我想答案是[here][1][1]:在上面链接的manifest.xml
中,为什么它是
而不是
?不,在我的情况下它不起作用,好像我想从3回到2,我无法导航,在我的情况下,它不起作用,好像我想从3回到2,我不能navigate@GAMA您可以使用intent.no(不使用intent)导航到activity3到activity2。我说的是使用后退按钮从第二幕转到第三幕。@GAMA使用此代码,您将转到第三幕到第二幕,Intent in1=新Intent(act3.this,act2.class);星触觉(in1);完成();不,我不是按代码从3导航到2。“后退”按钮应该注意这一点,因此我没有使用finish()