Android 按下后退按钮时退出应用程序

Android 按下后退按钮时退出应用程序,android,Android,我想这个问题已经被问过好几次了,但这是一个不同的场景。我有4个活动,比如说act1,act2,act3,act4,我把它们放在act1->act2->act3->act4上 act1分支选择, act2年度选择, act3主题选择, act4显示所选主题 用户可以按下act4上的后退按钮,然后移动到act3,并可以选择不同的主题,同样,当用户按下act3上的后退按钮时,它会移动到年份选择活动,即 act2.所以我希望act1、act2、act3这三个活动都是活动的,所以我没有写finish方法。

我想这个问题已经被问过好几次了,但这是一个不同的场景。我有4个活动,比如说act1,act2,act3,act4,我把它们放在act1->act2->act3->act4上

act1分支选择,
act2年度选择,
act3主题选择,
act4显示所选主题
用户可以按下act4上的后退按钮,然后移动到act3,并可以选择不同的主题,同样,当用户按下act3上的后退按钮时,它会移动到年份选择活动,即 act2.所以我希望act1、act2、act3这三个活动都是活动的,所以我没有写finish方法。我在act4中添加了home按钮,这将导致act1。

当我按下act1中的后退按钮时,应用程序应该关闭,但它形成了一个循环,所有打开的上一个活动都出现了。请提供解决方案。如果这个问题太长,请提供给我抱歉。这可能不是最好的方法。但您可以覆盖act1中的onBackPressed按钮并写入

System.exit(0);
这将立即关闭应用程序。 app1中可能也有更好的解决方案添加:

@Override
public void onBackPressed() {
Intent startMain = new Intent(Intent.ACTION_MAIN);
       startMain.addCategory(Intent.CATEGORY_HOME);
       startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
       startMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
       startActivity(startMain);
 }    

当从活动4返回到活动1时,您应该关闭所有活动,如以下代码,使用标志
Intent.flag\u activity\u CLEAR\u TOP

Intent it = new Intent(Activity4.this, Activity1.class);
it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(it);
因此,在活动1中,当您按下后退按钮时,它将完成应用程序


希望有帮助

这就是它的工作原理。现在在你的堆栈中有act1->act2->act3->act4->act1。
所以当你们按下act1的后退按钮时,它只会打开act4。你需要做的是,当从act4启动act1时,添加
标志\u ACTIVITY\u CLEAR\u TOP
标志到你的意图。该标志的作用是,要求android操作系统从后堆栈中删除以前的活动。

此标志只关闭act4,而不是act3,act2当我按下ACT1中的“后退”按钮时,这些仍然会出现,但这一个是指向主页的,但是如果我想获得打开应用程序的页面,我应该在上面的代码中修改什么,我认为你想要一个正常的意图,比如@giacomoni has post.intent it=新的意图(ActivityYouAre.this,ActivityYouWanToGo.class);it.addFlags(意图、标志、活动、清除、顶部);星触觉(it);否我想退出应用程序,但上面的代码退出了应用程序,但出现了主屏幕,我想在退出后打开的应用程序页面中获取应用程序页面您想关闭应用程序并在再次打开时显示您离开的位置,还是想关闭并显示活动并显示以前的活动?