【问题标题】:How to handle device home button click efficiently?如何有效地处理设备主页按钮点击?
【发布时间】:2013-03-21 05:50:43
【问题描述】:

我想在我的 android 应用程序中处理设备主页按钮点击。当谷歌搜索时,据说这 Link 有效。但我有一些疑问。

  1. 所有安卓版本都支持吗?如果不支持哪一个?

  2. 使用onAttachedToWindow()方法有什么后果吗?

  3. 有没有办法处理主页按钮的点击(除了这个)?

提前致谢

【问题讨论】:

    标签: android button event-handling click


    【解决方案1】:

    这仅适用于以前的版本。但是从 os 版本 4.0 开始它不起作用(尽管在我的模拟器中这在 api 级别 11 之后不起作用,但我根据许多其他链接指向 ics)。

    【讨论】:

    【解决方案2】:

    在其他帖子上找到这个。

    在较旧的 Android 版本上,这可以正常工作。但是 Android 改变了这一点,因为他们说“主页按钮应该保留主页按钮”并且他们不希望任何人覆盖主页按钮。由于这个原因,您的代码不再工作。

    如果您想在按下主页按钮时执行某些操作,请在 onPause 方法中执行此操作。

    【讨论】:

      【解决方案3】:

      是的,它的工作,请试试这个代码

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

      现在像这样处理关键事件,

      @Override
      
      public boolean onKeyDown(int keyCode, KeyEvent event) {
      
      if(keyCode == KeyEvent.KEYCODE_HOME)
      {
       Log.i("Home Button","Clicked");
      }
      if(keyCode==KeyEvent.KEYCODE_BACK)
      {
      
          finish();
       }
         return false;
      };
      

      【讨论】:

      • 抛出java.lang.IllegalArgumentException: 添加窗口后无法更改窗口类型。
      猜你喜欢
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多