java - Android:与屏幕交互锁定按钮

标签 java android key

我的应用程序中覆盖了 onKeyDownonMotionEvent。这两个都有效,但是 onKeyDown 有奇怪的行为。我始终可以与设备上的屏幕交互,但在与屏幕交互后,按钮不起作用。为了让它们再次工作,我必须按下其他按钮(我不使用的按钮)才能让它们再次工作。如果我再次与屏幕互动,按钮将不再起作用。

我正在编写的应用程序是一个游戏,因此对表面进行按钮调用,然后传递给运行游戏的线程。

我正在 HTC Aria 上调试,但问题在我的模拟器中仍然存在。

编辑

我的基本代码和详细的一样here .

按钮的代码如下:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent msg) {
     return thread.doKeyDown(keyCode, msg);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
     return thread.doTouchEvent(event);
    }


    public boolean doKeyDown(int keyCode, KeyEvent msg) {
     synchronized (mSurfaceHolder) {
      if (keyCode == KeyEvent.KEYCODE_MENU) {
       showDialog(DIALOG_PAUSED_ID);
                            return true;
      }
      return false;
     }
    }

    public boolean doTouchEvent(MotionEvent event) {
     synchronized (mSurfaceHolder) {
      if (mState == STATE_PLAYING) {
       if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE){
              if (event.getX() > 2 * (mWallX / 3)) {

               //shoot arrow
               shoot(event.getX(), event.getY());

               //turn player
               mPlayer.rotate(event.getX(), event.getY());

            return true;
        } else if (event.getAction() != MotionEvent.ACTION_MOVE && event.getX() < 2 * (mWallX / 3)) {
         //temp button on left for stress test
               stressTest = !stressTest;
               return true;
        }
       }
      }
   return false;
     }
    }

最佳答案

进入 Logcat 并观察重现问题时出现的消息。

如果您看到“按键调度超时”之类的内容,那么按钮可以正常工作,您的代码只是很忙,阻止接收任何新输入。

关于java - Android:与屏幕交互锁定按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4236915/

相关文章:

java - 如何通过 Java 在 Android 中创建新联系人?

Android 唱出时关闭所有 Activity

javascript - 使用对象作为键的 JQuery JSON 推送

c# - 将字符串、char类型转换为System.Windows.Forms.Keys

android - 线圈不使用 Jetpack Compose 在模拟器中加载图像

r - 如何手动更改 ggplot2 中图例中的关键标签

java - Web服务失败通知框架java

java - 如何在 swaggaer4spring-web 中设置发送按钮的操作 url?

java - 雅虎财经 API Java 下载 CSV

android - Android 模拟器上的 Instagram