如何在Android应用程序中处理主页按钮的KeyEvent?

时间:2011-10-11 06:30:45

标签: android keyevent android-homebutton

我正在Android中开发一个应用程序,我使用以下代码来处理后退按钮的KeyEvent:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) 
    {           
        finish();
    }

    return super.onKeyDown(keyCode, event);
}

我如何为主页按钮执行此操作?

4 个答案:

答案 0 :(得分:1)

正如这个问题所暗示的那样:Android Overriding home key遗憾的是,这是不可能的。也许还有其他方法可以实现您想要的行为?

答案 1 :(得分:1)

您无法控制Home键的行为。你不会得到Home键的事件,但你可以禁用它,但强烈建议你不要这样做。在阻止Home键之前,请参考post

但是你可以像这样阻止主页键:

@Override
public void onAttachedToWindow() {
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
}

答案 2 :(得分:1)

明显的答案是 - 在您的活动的onPause()方法中处理主页按键。当用户点击主页键时调用此回调。 Guaranted。主页键不适合您,但是 用于操作系统和用户。

答案 3 :(得分:0)

阅读以下内容:

Overriding the Home button - how do I get rid of the choice?

Android - How to catch that the Home button was pressed?

主页按钮应该只做一件事而且一件事。让用户返回HOME屏幕。即使你可以覆盖它的行为,这将是一个非常用户不友好的事情。 所以不要这样做,并以不同的方式解决您的问题!强文