Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中监听homebutton_Android - Fatal编程技术网

如何在android中监听homebutton

如何在android中监听homebutton,android,Android,可能重复: 我使用以下代码来监听按下的主按钮: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { System.out.println(keyCode); if(keyCode == KeyEvent.KEYCODE_HOME) { //do things return true; } return super.onKeyDown(keyCode,

可能重复:

我使用以下代码来监听按下的主按钮:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    System.out.println(keyCode);
    if(keyCode == KeyEvent.KEYCODE_HOME) {
        //do things
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
为什么没有回应? 我试着显示钥匙代码。 当我按下其他按钮时,它显示keycode。 只需按主页按钮,它就会显示。
如何修改它?

另一个选项是,当按下Home按钮时,会调用onStop(),您可以用它编写代码

@Override
protected void onStop() 
{
    super.onStop();
    Log.d(tag, "Home is called");
    // insert here your instructions
}

您可能需要将此方法添加到活动中

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

您无法捕获是否按下了home按钮。
onKEyDown()
似乎不适用于home。Android将home按钮的功能与其他按键分开。首选的方法是在用户按HOME键时处理调用活动的onStop()

@Override
protected void onStop() 
{
    super.onStop();
//put your logic here 
}

因为我想在按下“主页”按钮时重置值,但在调用其他活动时不重置值。使用onStop()似乎没有到达吗?@brian:我不确定,但尝试将值设置为final并进一步尝试。brian,尝试覆盖
onUserLeaveHint()
bez在当前活动中用户按Home键时也会调用此方法。因为我想在按下Home按钮时重置值,但如果调用其他活动,则不重置值。使用onStop()似乎没有到达它?无论您打算在哪里启动新活动,都要在它们旁边放置一个布尔标志变量。如果已触发意图代码,它还将使标志tru位于其下方。然后在桌面上检查该标志()检查此链接,