主页按钮单击事件处理android

时间:2013-09-19 11:37:28

标签: android

我想调用某个功能,在按下homebuttonclick事件时显示通知。

我提到this博客。

书面代码为:

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

          LocalToNotification();

        }
        return true;
    }   

但不幸的是它没有用。

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

上面的代码有什么问题?

请帮帮我。

4 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:2)

protected void onUserLeaveHint() {

    finish();
    super.onUserLeaveHint();
}

答案 2 :(得分:2)

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

答案 3 :(得分:1)

protected void onUserLeaveHint ()

Added in API level 3

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

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

<强>代码: -

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

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