当我从手机上点击后退按钮时如何关闭我的Android应用程序?

时间:2013-04-05 09:07:39

标签: android

我创建了一个Android应用。

当我从手机上点击后退按钮时,我需要关闭或退出我的应用程序。

我怎样才能做到这一点?

6 个答案:

答案 0 :(得分:5)

你必须处理后退按钮功能

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

答案 1 :(得分:3)

当您按下后退按钮时,活动将从堆栈中弹出并销毁。堆栈中的先前活动需要重点关注。

假设您有3项活动。 A,B和C.您导航到C. A到B到c。从C,您可以使用以下代码导航到A.

您可以覆盖后退按钮并拨打finish()

如果您在活动A中,只需按后退按钮即可退出。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
    onBackPressed();

}

return super.onKeyDown(keyCode, event);
  }

 public void onBackPressed() {
Intent myIntent = new Intent(C.this, A.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//clear the backstack
startActivity(myIntent);
finish();
return;
   }

编辑:

一些开发人员和stackoverflow上的一些人认为后退按钮至少应该回到之前的活动。它应该是那样的。因此,覆盖默认功能和清理堆栈可能不是一个好主意。

您可能还想考虑使用导航抽屉

http://developer.android.com/design/patterns/navigation.html

同时检查此

Is quitting an application frowned upon?

答案 2 :(得分:2)

@Override
public void onBackPressed() {
  this.finish();
}

试试这个

假设你在某些内部活动中在Application Class上设置一些布尔值,并在每个其他活动的恢复中检查该布尔值,然后在设置布尔值时完成它

答案 3 :(得分:1)

您无需调用任何方法来关闭应用; Android会照顾它。每当您按下后退按钮时,finish()上都会调用Activity,并且活动将被销毁。你不是在问Service对吗?因为服务在后台运行,您必须根据需要关闭服务。

答案 4 :(得分:1)

Pleeeease阅读CommonsWare的回答:Is quitting an application frowned upon?

这是一个非常好的细分,为什么这是一个Android应用程序设计的好方法。结论:

  

同样地,我会建议你不要试图移植你的   应用程序到Web,因为你遇到了一些相同的问题   使用Android报告,您也可以在网络应用中找到(例如,没有   “终止”)。或者,相反,有一天,如果你把你的应用程序移植到   Web,您可能会发现Web应用程序的流程可能更适合   Android,您可以在那时重新访问Android端口。

答案 5 :(得分:-1)

试试这个。

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {

        finish();
    }
    return false;
}