用向下按钮关闭Android应用程序

时间:2015-01-02 23:48:31

标签: android forceclose

我的后退按钮事件和关闭我的应用的代码有问题。我解释一下:

我有一个有两个活动的应用程序。第一个活动显示列表视图中的事件列表。当您单击其中一个事件时,将打开一个可以确认所选事件的出席情况的新活动。如果是第二个活动,则按下确认出勤的按钮返回主活动。

我的问题是,如果您从主活动中持有一个事件并确认第二个活动,当主要活动返回按钮而不是关闭应用程序返回第二个活动时,该按钮会将您返回到主活动。

因此我想记录按下按钮并关闭应用程序的事件,我测试了:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
            android.os.Process.killProcess(android.os.Process.myPid());
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

也是:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
            exit(0);
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

非常感谢你的时间和帮助

ANSWER

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
            Intent homeIntent = new Intent(Intent.ACTION_MAIN);
            homeIntent.addCategory( Intent.CATEGORY_HOME );
            homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(homeIntent);
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

1 个答案:

答案 0 :(得分:0)

我认为您已将活动设置错误。您应该在第二个活动中设置结果,然后调用它的finish()方法。然后后退按钮将始终按预期工作,您不必像这样做奇怪的黑客。