0

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

4

5 回答 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
System.exit(0)

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

关闭应用程序并在 Android 上启动主屏幕

于 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 回答