主页按钮单击事件处理android

主页按钮单击事件处理android,android,Android,我想调用某些函数来显示按下homebuttonclick事件时的通知 我参考了我的博客 书面代码如下: @Override public boolean onKeyDown(int keyCode, KeyEvent event){ if(keyCode == KeyEvent.KEYCODE_HOME){ APP_STATUS="SLEEP"; LocalToNotification(); }

我想调用某些函数来显示按下homebuttonclick事件时的通知

我参考了我的博客

书面代码如下:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if(keyCode == KeyEvent.KEYCODE_HOME){
            APP_STATUS="SLEEP";

          LocalToNotification();

        }
        return true;
    }   
但不幸的是,它不起作用

我通过调试器进行了测试,但发现在按下home按钮时,调试器也不会出现在这行代码上

上面的代码有什么错误


请帮帮我。

在较旧的Android版本上,这是可行的。但是安卓改变了这一点,因为他们说“主页按钮应该保持主页按钮”,他们不希望任何人覆盖主页按钮。由于这个原因,您的代码不再工作

如果要在按下home(主页)按钮时执行某些操作,请在onPause方法中执行此操作

protected void onUserLeaveHint() {

    finish();
    super.onUserLeaveHint();
}
当用户选择某个活动即将进入后台时,作为活动生命周期的一部分调用。例如,当用户按下Home键时,将调用onUserLeaveHint(),但当来电导致in-call活动自动带到前台时,将不会对被中断的活动调用onUserLeaveHint()。在调用该方法的情况下,会在活动的onPause()回调之前调用该方法

此回调和onUserInteraction()旨在帮助活动智能地管理状态栏通知;具体来说,帮助活动确定取消通知的适当时间

代码:-

    @Override
    protected void onUserLeaveHint()
    {
        // TODO Auto-generated method stub
        super.onUserLeaveHint();

        new OfflineAsyncTask(BaseActivity.this).execute();
    }

密钥代码常量:主密钥。此密钥由框架处理,永远不会传递给应用程序。

您是否要输入此函数?或者只是跳过了我在APP_STATUS=“SLEEP”上保留调试器的if(keyCode…);这不是在alsosir上,在onpause上它确实有效,但不知道它在博客中的代码中如何不起作用正如我说的,Android不想在Home按钮上做任何事情。如果你看一下这个链接,你会发现只有6个keyevents,home按钮没有列出,因为这个原因它不应该被覆盖。我正在暂停,但需要很长时间才能再次站到前面。实际上,我正在创建一个屏幕锁定应用程序@西尔维娅解释你的答案。只是不要用代码回答,总是包含一些解释。Home按钮不会覆盖。但是当我们在userleaveHint界面调用中默认单击Home按钮时,这意味着用户给出了离开应用程序的提示
    @Override
    protected void onUserLeaveHint()
    {
        // TODO Auto-generated method stub
        super.onUserLeaveHint();

        new OfflineAsyncTask(BaseActivity.this).execute();
    }