当用户触摸Android设备的主页按钮或后退按钮时,如何销毁应用程序?

时间:2012-07-13 12:56:02

标签: android android-intent

我想在用户触摸Android设备的主页按钮时销毁我的应用程序,并在用户触摸Android的“后退”按钮时启动MainActivity。 有人知道怎么做吗?

5 个答案:

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

答案 1 :(得分:1)

System.exit(0)

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

Close application and launch home screen on Android

答案 2 :(得分:1)

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

但是你需要考虑一旦你杀了你的活动,按下后退按钮将不会让你回到你的应用程序活动,因为杀死活动会将它们从内存堆栈中删除。

另请查看Activity life cycle diagram以及Android开发者网站上提供的详细说明。 enter image description here

答案 3 :(得分:0)

您可以通过致电Activity来关闭finish(),但是您必须为每个已打开的Activity执行此操作。要在按下HOME按钮时发生这种情况,您必须注册KeyEvent。我不太清楚如何做到这一点,但你可以找到documentation here

答案 4 :(得分:0)

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