Android 以正确的方式退出应用程序

Android 以正确的方式退出应用程序,android,exit,back-button,Android,Exit,Back Button,我有四个活动,我有两个按钮,可以在名为“上一个”和“下一个”的活动之间导航 现在,我已经通过了许多以前回答过的答案,当按下后退按钮时,我得到了下面的代码以退出应用程序 @Override public void onBackPressed() { // TODO Auto-generated method stub super.onBackPressed(); finish(); } 现在我的问题是,当我从第二个活动导航到第三个活动,最后导航到第四个活动时,假设用户想要

我有四个活动,我有两个按钮,可以在名为“上一个”和“下一个”的活动之间导航

现在,我已经通过了许多以前回答过的答案,当按下后退按钮时,我得到了下面的代码以退出应用程序

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
    finish();
}
现在我的问题是,当我从第二个活动导航到第三个活动,最后导航到第四个活动时,假设用户想要导航到上一个活动,他可以单击“上一个”按钮和类似的“上一个”按钮。但如果我导航到如下所示的流程:

2--->3--->4

4--->3--->4

或者类似的组合,最后当我到达最后一个活动,用户完成任务并决定退出应用程序时,当单击backbutton时,它将转到我之前进行的活动

如上图4--->3和3--->4所示

这就是backbutton的行为,或者有人能告诉我单击backbutton时关闭应用程序的权利吗

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
    System.exit()
}

System.exit()
将帮助您关闭应用程序

当后台没有其他活动时,应用程序将关闭。每次完成()一项活动时,您实际上是在从后台删除该活动。我认为您遇到的问题是,当用户单击“上一步”按钮时,您正在完成()活动,而当用户单击UI上的“上一步”按钮时,您没有完成()活动。所以,不管怎样,跟踪你的活动背景——这是决定应用程序是否真正完成的关键

 @Override
public void onBackPressed() {
  // TODO Auto-generated method stub
  super.onBackPressed();
  System.exit(0)
 }

话虽如此,Android不鼓励你明确退出应用程序。当应用程序需要资源时,系统将负责销毁它。

您问题中的后退按钮行为是正确的

finish()
是退出活动的正确方法。默认的
onBackPressed()
实现就是这样做的。在活动退出后,转到活动堆栈中的上一个活动是正确的方法。只有当活动堆栈为空时,后退按钮才能将用户从应用程序中取出

在某些情况下,在启动新活动时,可以使用适当的
Intent
标志从现有活动中清除后台堆栈。有关更多信息,请参阅


此外,这里还有一个关于退出应用程序的典型问题:

如果您不介意在按下“后退”按钮时退出应用程序,您可以启动堆栈上没有历史记录的活动。