当用户触摸Android设备的home按钮或back按钮时,如何销毁应用程序?

当用户触摸Android设备的home按钮或back按钮时,如何销毁应用程序?,android,android-intent,Android,Android Intent,我想在用户触摸Android设备的home按钮时销毁我的应用程序,并在用户触摸Android设备的back按钮时开始Main活动。 有人知道怎么做吗 System.exit(0) 但最好不要使用它。Android并不是为这个目的而设计的 但最好不要使用它。Android并不是为这个目的而设计的 您可以通过调用finish()来关闭活动,但您必须为每个打开的活动执行此操作。要在按下HOME(主页)按钮时发生这种情况,您必须注册一个KeyEvent。我不太清楚如何执行此操作,但您可以找到。您可以

我想在用户触摸Android设备的home按钮时销毁我的应用程序,并在用户触摸Android设备的back按钮时开始Main活动。 有人知道怎么做吗

System.exit(0)
但最好不要使用它。Android并不是为这个目的而设计的

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


您可以通过调用
finish()
来关闭
活动,但您必须为每个打开的
活动
执行此操作。要在按下HOME(主页)按钮时发生这种情况,您必须注册一个
KeyEvent
。我不太清楚如何执行此操作,但您可以找到。

您可以通过调用
finish()
来关闭
活动
,但您必须为每个打开的
活动
执行此操作。要在按下HOME(主页)按钮时发生这种情况,您必须注册一个
KeyEvent
。我不太清楚如何执行此操作,但您可以在
onStop()
方法中找到。

调用
finish()
。或者在清单中使用android:noHistory=“true”

onStop()方法中调用
finish()
。或者在清单中使用android:noHistory=“true”

可以通过调用finish()和finishActivity()方法来实现。查看API指南上的详细信息。从何处调用这些方法取决于应用程序的实现方式,但我想您可以通过侦听KeyEvent并过滤Home button key event,从当前的重点活动中执行此操作

但是你需要考虑一旦你杀死了你的活动,按下Butter按钮就不会让你回到你的应用程序活动中,因为杀死这些活动会把它们从内存堆栈中抹去。 还可以查看Android开发者网站上给出的详细说明。


您可以通过调用finish()和finishActivity()方法来实现这一点。查看API指南上的详细信息。从何处调用这些方法取决于应用程序的实现方式,但我想您可以通过侦听KeyEvent并过滤Home button key event,从当前的重点活动中执行此操作

但是你需要考虑一旦你杀死了你的活动,按下Butter按钮就不会让你回到你的应用程序活动中,因为杀死这些活动会把它们从内存堆栈中抹去。 还可以查看Android开发者网站上给出的详细说明。


对于背面的关闭应用程序

@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);
}
并且您无法获取主页按钮的单击事件,因此您希望对顶部方法进行编码。

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

用于背面关闭应用程序

@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);
}
并且您无法获取主页按钮的单击事件,因此您希望对顶部方法进行编码。

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

可能重复:看看这个。可能重复:看看这个。正如你所说,我认为这不是最好的解决方案,但感谢你的帮助^^@Shannon,这不是最好的解决方案,因为你想做的是在平台的最佳实践之外……正如你所说,我认为这不是最好的解决方案,但谢谢你的帮助^^@Shannon这不是最好的解决方案,因为你想做的事情超出了平台的最佳实践……非常感谢!我使用了第二个解决方案,它可以工作,但是使用onPause()方法,我甚至不必使用您的第一个解决方案^^。非常感谢!我使用了第二个解决方案,它可以工作,但是使用onPause()方法,我甚至不必使用您的第一个解决方案^^。谢谢,我找到了解决方案!谢谢,我找到了解决办法!