检测开/关键按Android键

DRi*_*FTy 6 java android keylistener listener

如何检测按下的电源按钮或锁定屏幕按钮?当我的游戏以这种方式暂停时,它会导致游戏崩溃,因为我需要在线程发生时暂停它.

the*_*enp 18

从Christian对这个问题的回答:

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_POWER) {
        // do what you want with the power button
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

然而Jake Basile是对的.除非你有一个非常好的理由在按下电源按钮时做一些特别的事情,你应该使用标准的Android生命周期功能.

按下电源按钮时,它将调用应用程序的onPause()方法,当您解锁设备时,它将调用onResume().这是您应该管理线程以防止应用程序崩溃的地方.

对活动的文档会给你的生命周期功能的详细描述,他们被调用时,你应该如何使用它们. 在此输入图像描述


Jak*_*ile 8

使用onPauseonResume方法.当您的应用程序不再位于前台(当锁定屏幕出现时)或手机处于睡眠状态时,以及当您的应用程序返回到前台时,会调用这些应用程序.

这是Android中Activity活动周期的标准流程,这里有更详细的说明.