Android 上下文按钮阻止后退按钮功能

Android context button blocks back button functionality

我的所有活动都有问题,当我按下后退按钮时它工作正常,但是当我之前按下上下文菜单按钮时,当我按下后退按钮时没有任何反应。 我说的是 phone 按钮,而不是用于后退导航的工具栏图标。有人处理过这个吗?

编辑: 没有菜单显示,onPrepareOptionsMenu() 被删除,phone 在我按下返回但没有操作时振动。 我看到如果我膨胀菜单,它会在关闭弹出窗口的第一个返回后正常工作。

我发现只有在使用 setSupportActionBar(toolbar) 设置工具栏时才会发生这种情况;

我有几乎相同的问题,这是我的情况:

  • 带有工具栏的 AppCompatActivity setSupportActionBar(toolbar);
  • 我正在使用导航抽屉(不知道这是否会影响)
  • onBackPressed() 被覆盖以提示注销对话框

一切正常,直到我按下设备菜单按钮,然后应用程序开始忽略后退按钮。

这是我按下设备菜单按钮后看到的

  • 在此之后未调用 onBackPressed() 方法
  • 如果你设置了一个onKeyUp(int keyCode, KeyEvent event),它接收事件(你可以检查de keyCode是否与KeyEvent.KEYCODE_BACK相同)

我不知道为什么 onBackPressed 停止被调用,在不覆盖 onBackPressed 和 onKeyUp 的情况下尝试,问题仍然是一样的。

我知道这不是最好的解决方案,但为了解决这个问题我正在使用下一个代码:

@Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode==KeyEvent.KEYCODE_BACK){
                onBackPressed();
                return true;
        }
        return super.onKeyUp(keyCode, event);
    }

希望对您有所帮助。