Android 主页按钮前的方法
我的android应用程序是一个客户端,当有人单击home按钮时,我想向服务器发送消息,当用户更改回应用程序时,我也想向服务器发送消息。如果我可以覆盖HOME button keyEvent,或者当应用程序被放到后台时只调用的任何方法,我可以发送消息并在一个单例中设置一个静态变量,每个onStart()都会对其进行检查,所以基本上我只需要以某种方式“覆盖”HOME按钮。 我尝试了以下方法:Android 主页按钮前的方法,android,home-button,Android,Home Button,我的android应用程序是一个客户端,当有人单击home按钮时,我想向服务器发送消息,当用户更改回应用程序时,我也想向服务器发送消息。如果我可以覆盖HOME button keyEvent,或者当应用程序被放到后台时只调用的任何方法,我可以发送消息并在一个单例中设置一个静态变量,每个onStart()都会对其进行检查,所以基本上我只需要以某种方式“覆盖”HOME按钮。 我尝试了以下方法: @Override public boolean onKeyDown(int keyCode, KeyEv
@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();
}
但问题是,不仅当我按下主页按钮或应用程序被中断时,而且当我导航到其他活动(并完成当前活动)时,此方法将被调用。
这个问题有什么解决办法吗?可能想看看这个 您正在根据该行查找onPause/onResume 或仅当应用程序将被调用时才会调用的任何方法 成为背景
该文档应该解释堆栈是如何工作的,这将允许您完成此问题。可能想看看这个 您正在根据该行查找onPause/onResume 或仅当应用程序将被调用时才会调用的任何方法 成为背景
该文档应该解释堆栈是如何工作的,这将允许您完成此问题。此问题没有解决方案,因为android不允许您覆盖home按钮。解决此问题的最简单方法是在
onPause
中pur您的代码,但当然,这可以在不按下home按钮的情况下调用
第二个(未被接受)答案有一个有趣的解决方案,但我没有尝试过,因此我不确定它是否有效,因为android不允许您覆盖home按钮,所以这个问题没有一个日间解决方案。解决此问题的最简单方法是在
onPause
中pur您的代码,但当然,这可以在不按下home按钮的情况下调用
第二个(未接受)答案有一个有趣的解决方案,但我没有尝试过,因此我不确定它是否有效尝试覆盖MainActivity的onPause()。尝试覆盖MainActivity的onPause()。onPause的问题是,当我只是简单地更改活动(并完成当前任务)时,它将被调用,不仅当应用程序进入后台时。如何区分这两种情况?不幸的是,Android没有像iOS那样的ApplicationIdentinterBackground。在国际海事组织,你最好保持你的活动活动状态,以确定它是进入后台还是进入一个新的活动。有很多关于这个的话题,有很多不同的想法。我建议你四处看看,看看什么最适合你。谢谢你的回答,至少我不会试图找到一些不存在的东西。onPause的问题是,当我只是简单地更改活动(并完成当前活动)时,这将被调用,而不仅仅是当应用程序进入后台时。如何区分这两种情况?不幸的是,Android没有像iOS那样的ApplicationIdentinterBackground。在国际海事组织,你最好保持你的活动活动状态,以确定它是进入后台还是进入一个新的活动。有很多关于这个的话题,有很多不同的想法。我建议你四处看看,看看什么最适合你。谢谢你的回答,至少我不会试图找到一些不存在的东西。不幸的是,它不能正确地使用我的手机,这有点不可预测。不幸的是,它不能正确地使用我的手机,这有点不可预测。