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