0

我尝试了以下方法来覆盖 HOME 按钮:-

  1. 通过使用 KeyDown 方法。

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        Log.e("Pressed", "" + keyCode);
    
    if (keyCode == KeyEvent.KEYCODE_HOME)
    {
        Log.e("HOME_PRESSED", "Ignoring HOME Button.");
        return true;
    }       
    else if (keyCode == KeyEvent.KEYCODE_BACK)
    {
        Log.e("BACK_PRESSED", "Ignore back pressing.");
        return true;
    }
            return super.onKeyDown(keyCode, event);
    }
    
  2. 通过使用 NewIntent 方法。

    @Override
        protected void onNewIntent(Intent intent) {     
    super.onNewIntent(intent);      
    if (intent.getAction().equalsIgnoreCase(Intent.ACTION_MAIN))
    {
        Log.e("MAIN_PRESSED", "Ignoring MAIN Button.");
    }
    }
    

但我无法覆盖 HOME 按钮按下事件。

因此,根据我的知识和日志,我发现每次按下主页按钮时。

它着火了ACT-AM_ON_PAUSE_CALLED(对此一无所知)

我试图用谷歌搜索这件事以了解更多信息,但没有找到相关的信息!。

请帮助覆盖应用程序中的主页按钮。

4

3 回答 3

2

一般不建议覆盖 Android 操作系统的 Home 按钮。当应用程序出现问题而您只想离开那里时,主页按钮是一个“安全”按钮。如果您愿意,它是一种“弹出”按钮。

您可以通过在清单中将其声明为应用程序/操作来在某种程度上覆盖它,用户可以在按下 Home 按钮时选择该应用程序/操作,并将您的应用程序设置为按下 Home 按钮时的默认选项。但是,此方法会要求用户在您的应用程序和默认主页操作之间进行选择并分配默认值(否则他每次按下主页按钮时都必须在这两个选项之间进行选择) - 根本不推荐(糟糕的用户体验)。

于 2013-10-09T12:23:25.107 回答
1

从此处接受的答案中, 您无法覆盖它,但您可以向 onStop() 添加一些代码,该代码在单击主页按钮时调用

于 2013-10-09T12:23:44.527 回答
1

这是不可能的,并且禁止覆盖它(安全问题)。这是由框架处理的,你不能用它做你喜欢的事情。

于 2013-10-09T12:27:12.637 回答