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

时间:2014-03-24 18:08:50

标签: android

我认为这个问题已被多次询问,但这是一个不同的场景。我有4个活动,比如act1,act2,act3,act4,我已经打算使得act1-> act2-> act3-&gt ; ACT4

act1-branch选择,
act2-year selection,
act3-主题选择,
act4-显示所选主题
用户可以按下act4后退按钮移动到act3并可以选择不同的主题,类似当他按下act3上的后退按钮时,它会移动到年份选择活动,即 act2.so我希望3个活动act1,act2,act3活着,所以我没有写完成方法。我在act4中放置了导致act1的主页按钮。
当我按下act1中的后退按钮应用程序应该关闭,但它形成一个循环并且所有打开的prevoius活动都会出现。请给我解决方案对不起,如果这个问题太冗长

4 个答案:

答案 0 :(得分:2)

使用标记Intent.FLAG_ACTIVITY_CLEAR_TOP时,您应该在从活动4返回活动1时关闭所有活动,如下面的代码:

Intent it = new Intent(Activity4.this, Activity1.class);
it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(it);

因此,在您的活动1中按下后退按钮时,它将完成应用程序。

希望它有所帮助!

答案 1 :(得分: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);
 }    

答案 2 :(得分:0)

它应该如何运作。现在你的堆栈中你有act1 - > act2 - > act3 - > act4 - >行为1。 所以当你按下act1的后退按钮时,它只会打开act4。你需要做的是,当从act4启动act1时,将FLAG_ACTIVITY_CLEAR_TOP标志添加到你的意图。这个标志的作用是,要求android操作系统从后栈中删除以前的活动。

答案 3 :(得分:-1)

这可能不是最佳方式..但您可以覆盖 act1 的onBackPressed按钮并写入

System.exit(0);

这将立即关闭应用程序。 也可能有更好的解决方案

相关问题