不调用onKeyDown

时间:2014-08-22 14:40:50

标签: android

我在活动中覆盖方法 onKeyDown 。但只有在按下后退按钮时才会调用它。按下主页按钮时不会调用它。我在Nexus 5测试这个。这是什么原因?

1 个答案:

答案 0 :(得分:1)

我担心在传统意义上这是无法做到的。想象一下,如果开发人员可以覆盖主页按钮,最终用户可能/将会遇到的问题?人们可以使用它来阻止用户退出他们的应用程序。这是一个很大的不行!

但是......如果你没有做任何险恶的事情,那么有一些方法可以拦截主页按钮被按下的假设。例如:

按下主页按钮后,操作系统将触发onStop。因此,考虑到这一点,您可以覆盖该方法,如下所示:

@Override
protected void onStop()
{
    super.onStop();
    // Add your HOME button press logic here
}

在使用“假定”的任何内容时要记住的事项。按下主页按钮:

  1. 当弹出到另一个Activity时,您将收到此触发器。
  2. 此方法也由操作系统在其他各点触发。
  3. 我想这可以归结为你找出你为什么需要拦截主页按钮按下,如果有任何其他方法你可以使用。

    长话短说:

    不能,您无法正式拦截主页按钮。

    你可以假设,但是面对随机触发也调用onStop()

    寻找其他选项并完全忽略主页按钮。没有人需要拦截它。

    希望这有帮助!