我想在用户触摸 Android 设备的主页按钮时销毁我的应用程序,并在用户触摸 Android 的“后退”按钮时开始 MainActivity。有谁知道该怎么做?
问问题
3248 次
5 回答
2
在 Back 上关闭应用程序
@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();
}
于 2012-07-13T13:23:11.440 回答
1
您可以通过调用 finish() 和 finishActivity() 方法来做到这一点。查看 API 指南Shutting down an Activity的详细信息。从哪里调用这些方法取决于您的应用程序是如何实现的,但我想您可以通过侦听 KeyEvent 并过滤 Home 按钮键事件来从当前的焦点活动中执行此操作。
但是,您需要考虑,一旦您杀死了您的活动,按下后退按钮将不会让您回到您的应用程序活动,因为杀死活动会将它们从内存堆栈中清除。
还可以查看 Android 开发者网站上给出的Activity 生命周期图和详细描述。
于 2012-07-13T13:20:04.457 回答
1
于 2012-07-13T12:59:33.367 回答
0
你可以Activity
通过调用来关闭一个finish()
,但你必须对每个Activity
打开的都这样做。要在按下 HOME 按钮时发生这种情况,您必须注册一个KeyEvent
. 我不太清楚如何执行此操作,但您可以在此处找到文档。
于 2012-07-13T13:02:42.893 回答
0
调用finish()
你的onStop()
方法。或android:noHistory="true"
在您的清单中使用。
于 2012-07-13T13:15:15.457 回答