Android - onBackPressed关闭应用程序

时间:2015-03-17 08:58:30

标签: android android-intent android-activity

希望你过得愉快!

所以今天我有一个相当简单的问题。在我按下后退按钮的主要活动中,我希望我开发的应用程序无论以前做了什么都要关闭。并删除堆栈,以便下次重新打开。

活动的工作方式如下:

A(主菜单)

这里有4个按钮,可以进行4种不同的活动 B(关于) C(更改主题) D(使用美国测量计算BMI) E(使用欧盟测量计算BMI)

D和E都导致 F(结果)

当我在F中并按回来时我想回到之前的(D或E) - 这是固定的,为了方便,它保留了最后输入的信息。

在F活动上,有一个按钮可直接返回菜单。如果我按下此按钮然后标准的android后退按钮,我将从A到D / E再到A再次关闭应用程序之前。

当我在B,C,D,E时,我想回到A. 当我在A时,我想关闭应用程序。

每个人的设置是:

A - onBackPressed() - Here I want to put to turn off the application. 
onClickA/B/C/D()
{ 
    Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(Intent);
    finish();
}

B - android:noHistory(true)
onBackPressed()
{ 
    Start New Intent A.
}

C - android:noHistory(true)
onBackPressed()
{
    Start New Intent A (so the changes take effect on the Main Menu even if you press back).
}

D - onBackPressed()
{
    Start New Intent A
    finish();
}

E - onBackPressed()
{
    Start New Intent A
    finish();
}

F - Nothing specific.

2 个答案:

答案 0 :(得分:0)

您可以使用System.exit(0)方法onBackPress()

答案 1 :(得分:0)

首先,你可能想要切换到片段,因为你在这里做的事情看起来不那么完整,所以这里需要一个活动。 如果您切换到片段,则可以轻松地将这些片段添加到您想要返回的后台堆栈中。 这样你只需要覆盖onBackPressed()一次。