我想调用某个功能,在按下homebuttonclick事件时显示通知。
我提到this博客。
书面代码为:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_HOME){
APP_STATUS="SLEEP";
LocalToNotification();
}
return true;
}
但不幸的是它没有用。
我通过调试器进行了测试,但观察到调试器在按下主页按钮时也没有进入这行代码。
上面的代码有什么问题?
请帮帮我。
答案 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();
}