我的android应用程序是一个客户端,当有人点击home键时,我想向服务器发送消息,而当用户变回应用程序时,我也想向服务器发送消息。如果我可以覆盖 HOME 按钮 keyEvent 或仅在应用程序进入后台时调用的任何方法,我可以发送消息并在单例中设置一个静态变量,每个 onStart() 都会检查它,所以基本上我只需要以某种方式“覆盖” HOME 按钮。我尝试了以下方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_HOME) {
//...
return true;
}
return super.onKeyDown(keyCode, event);
}
它根本不起作用。我在里面放了一个断点,但是 HOME 按钮根本不会触发这个方法。(三星 Galaxy Ace,安卓 2.2.1)。
我也试图覆盖onUserLeaveHint()
这样的:
@Override
protected void onUserLeaveHint() {
//...
super.onUserLeaveHint();
}
但问题是,这个方法不仅会在我按下 HOME 按钮或应用程序中断时被调用,而且当我只是导航到另一个活动(并完成当前活动)时。这个问题有什么解决办法吗?