4

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

我参考了这个博客。

编写代码为:

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

          LocalToNotification();

        }
        return true;
    }   

但不幸的是,它不起作用。

我通过调试器进行了测试,但观察到调试器在按下主页按钮时也没有出现在这行代码上。

上面的代码有什么问题?

请帮我。

4

4 回答 4

8

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

如果您想在按下主页按钮时执行某些操作,请在 onPause 方法中执行此操作。

于 2013-09-19T11:52:51.407 回答
2
protected void onUserLeaveHint() {

    finish();
    super.onUserLeaveHint();
}
于 2014-05-19T07:41:40.340 回答
2

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

于 2014-12-05T14:44:34.970 回答
1
protected void onUserLeaveHint ()

Added in API level 3

当由于用户选择活动即将进入后台时,作为活动生命周期的一部分调用。例如,当用户按下 Home 键时,会调用 onUserLeaveHint(),但是当有来电导致通话中的 Activity 被自动带到前台时,被中断的 Activity 不会调用 onUserLeaveHint() . 在调用它的情况下,此方法会在活动的 onPause() 回调之前调用。

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

代码:-

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

        new OfflineAsyncTask(BaseActivity.this).execute();
    }
于 2014-06-12T10:05:27.657 回答