1

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

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

    return super.onKeyDown(keyCode, event);
}

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

4

4 回答 4

2

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

但是,您可以像这样阻止 home 键:

@Override
public void onAttachedToWindow() {
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
}
于 2011-10-11T06:57:57.893 回答
1

显而易见的答案是 - 在您的活动的 onPause() 方法中处理主页按键。当用户点击 home 键时调用此回调。保证。Home 键不是给你的,而是给操作系统和用户的。

于 2011-10-11T07:02:31.580 回答
1

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

于 2011-10-11T06:34:35.963 回答
0

阅读这些:

覆盖主页按钮 - 我如何摆脱选择?

Android - 如何捕捉到主页按钮被按下?

主页按钮应该只做一件事和一件事并且始终如一。让用户回到主屏幕。即使您可以覆盖它的行为,这也是一件对用户非常不友好的事情。所以不要这样做并以不同的方式解决您的问题!强文本

于 2011-10-11T07:23:30.787 回答