【问题标题】:How to catch event with hardware back button on android?如何使用android上的硬件后退按钮捕获事件?
【发布时间】:2011-11-11 13:34:00
【问题描述】:

如何在 android 上使用硬件后退按钮捕获事件?我需要禁止用户返回,当单击手机上的返回按钮以显示消息而不是继续以前的活动时,我需要阻止用户返回。该怎么做?

【问题讨论】:

标签: android


【解决方案1】:

你可以这样做

  1. 像这样将 onBackPressed() 方法覆盖到您的 Activity 中

    public void onBackPressed(){
         // do something here and don't write super.onBackPressed()
    }
    
  2. 重写 onKeyDown() 方法

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch(keyCode){
        case KeyEvent.KEYCODE_BACK:
            // do something here 
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
    

【讨论】:

  • 真的有必要覆盖onKeyDown()吗?按下返回键时,不会调用onBackPressed()吗?
  • @LarsH 如果您仍然想知道:不。第一个解决方案适用于 API 级别 5 (Android 2.0) 及更高版本。第二种解决方案是针对 API Level this comment/answer
【解决方案2】:

在任何Activity 中覆盖方法onBackPressed(),以创建与后退按钮不同的行为。

这些问题与您的问题相同(并且可以通过简单的搜索找到):

how to disable back button in android

Disable back button in android

【讨论】:

    【解决方案3】:

    您可以在活动中使用onKeyDown() 禁止用户“返回”操作,如下所示:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if ((keyCode == KeyEvent.KEYCODE_BACK))
        {
            //do actions like show message
            return false;
        }
        return super.onKeyDown(keyCode, event);
    }
    

    【讨论】:

      猜你喜欢
      • 2018-11-24
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 2011-04-02
      相关资源
      最近更新 更多