【问题标题】:To override HOME_BUTTON android覆盖 HOME_BUTTON android
【发布时间】:2013-10-09 12:17:45
【问题描述】:

我尝试了以下方法来覆盖 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.(不知道)

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

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

【问题讨论】:

  • 为什么?为什么您的应用程序的行为与所有其他应用程序不同,并且以用户不理解的方式?除了启动器之外,如果应用找到了覆盖主页的方法(这将利用错误),那么它不会在我的设备上停留很长时间。
  • @Simon 我认为这只是他老板的另一个愚蠢要求,我自己已经习惯了被问到愚蠢和奇怪的事情!
  • 这还不可能,所以不要浪费你的时间!!!
  • 感谢您的回复!实际上它是一个警报活动,它也在运行警报音并且它的事件有样式=透明。因此,如果用户单击 HOME 按钮。它会消失,但警报会运行,甚至不会显示在最近的应用程序中,因此需要覆盖它以至少销毁警报。

标签: android


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    来自接受的答案here 您不能覆盖它,但您可以向 onStop() 添加一些代码,该代码在单击主页按钮时调用

    【讨论】:

    • 这个答案适合我。让我试试。 :)
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-15
      相关资源
      最近更新 更多