2012-07-13 59 views
0

我想在用户触摸Android设备的主页按钮时销毁我的应用程序,并在用户触摸Android的“后退”按钮时开始MainActivity。 有没有人知道如何做到这一点?如何在用户触摸Android设备的主页按钮或后退按钮时销毁应用程序?

+0

可能重复:http://stackoverflow.com/questions/4131585/how-to-destroy-an-activity-in-android – 2012-07-13 13:00:09

+0

看看这个【答案】(HTTP://计算器的.com /一个/1212908分之4132571)。 – 2012-07-13 13:00:30

回答

2

对于近处的应用上回

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (event.getAction() == KeyEvent.ACTION_DOWN) { 
     switch (keyCode) { 
     case KeyEvent.KEYCODE_BACK : 
      finish(); 

      return true; 
     } 
    } 
    return super.onKeyDown(keyCode, event); 
} 

所以要编码的onStop方法你不能点击主页按钮的事件。

@Override 
    protected void onStop() { 
     finish(); 
     super.onStop(); 
    } 
+0

非常感谢!我使用了第二种解决方案,它的工作原理是使用onPause()方法,我甚至不必使用第一个解决方案^^。 – Shannon 2012-07-17 07:22:49

1
System.exit(0) 

但是最好不要使用它。 Android不是为此设计的。

Close application and launch home screen on Android

+1

正如你说,我认为这不是最好的解决办法,但感谢您的帮助^^ – Shannon 2012-07-13 13:13:58

+0

@Shannon它是不是最好的解决方案,因为你所想要做的是最好的做法之外的平台... – FoamyGuy 2012-07-13 13:17:12

0

你可以通过调用finish()关闭一个Activity,但你必须这样做,每个Activity是开放的。要在按HOME按钮时发生这种情况,您必须注册KeyEvent。我不太清楚如何做到这一点,但你可以找到documentation here

0

通话finish()onStop()方法。或者在清单中使用android:noHistory="true"

1

你可以通过调用finish()和finishActivity()方法来做到这一点。查看API指南Shutting down an Activity的详细信息。从哪里调用这些方法取决于应用程序的实现方式,但我想你可以通过监听KeyEvent和过滤Home按键事件来完成当前焦点活动。

但是你需要考虑的是,一旦你已经杀了你的活动按后退按钮不会让你回到你的应用程序的活动,因为杀死活动将消灭他们的内存堆栈。

还检查了在Android开发者网站给出的Activity life cycle diagram和详细说明。 enter image description here

+0

谢谢,我找到了解决方案! – Shannon 2012-07-17 07:24:40

相关问题