Android 安卓,如何通过广播接收器接收主页按钮点击?

Android 安卓,如何通过广播接收器接收主页按钮点击?,android,broadcastreceiver,android-homebutton,Android,Broadcastreceiver,Android Homebutton,在我的应用程序中,当任何用户退出应用程序时,我需要通过单击“注销”按钮或按“主页”按钮关闭应用程序,向服务器发送注销请求 按钮并没有问题,结果正如我所期望的。问题是如何按“回家”按钮。根据我的研究,不可能使用onKeyDown(int-keyCode,KeyEvent-event),因为我们可以使用返回按钮 我正在考虑的解决方案是注册一个接收器,并在单击“主页”按钮时发送广播。所以,通过接收器,我可以启动一个服务,向服务器发送注销请求 我目前的问题是,每当我点击“回家”按钮时,我都无法找到它。这

在我的应用程序中,当任何用户退出应用程序时,我需要通过单击“注销”按钮或按“主页”按钮关闭应用程序,向服务器发送注销请求

按钮并没有问题,结果正如我所期望的。问题是如何按“回家”按钮。根据我的研究,不可能使用
onKeyDown(int-keyCode,KeyEvent-event)
,因为我们可以使用返回按钮

我正在考虑的解决方案是注册一个接收器,并在单击“主页”按钮时发送广播。所以,通过接收器,我可以启动一个服务,向服务器发送注销请求

我目前的问题是,每当我点击“回家”按钮时,我都无法找到它。这是我编写的代码:

manifest.xml

<application ...

        <receiver android:name="HomeButtonReceiver" >
            <intent-filter>
                <category android:name="android.intent.category.HOME" />
            </intent-filter>
        </receiver>

</application>
如有任何意见/建议,将不胜感激。
谢谢

为什么不使用
dispatchKeyEvent
功能呢。它可以拦截HOME按钮按下事件

@Override
    public boolean dispatchKeyEvent(KeyEvent keyevent) {

        if (keyevent.getKeyCode() == KeyEvent.KEYCODE_HOME) {
            //Do here what you want
            return true;
        }
        else
            return super.dispatchKeyEvent(event);
   }

你能做的就是这样

创建主页按钮事件捕捉器

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode==KeyEvent.KEYCODE_HOME){
       //Send your own custom broadcast message
    }
    return super.onKeyDown(keyCode, event);
}
现在您可以创建广播接收器,以便接收您的消息


您可以参考和了解如何发送广播信息

如果您只需要了解用户何时退出应用程序,为什么不使用
活动
onPause(…)
方法?

,您可以处理Home按钮,因此只需发送广播即可。感谢hotveryspicy,我试过你的方法,但没有成功。它可以捕获音量上升/下降,但我无法按主键。感谢Binoy Babu,这是因为当用户关闭应用程序时,我需要向服务器发送取消会话id的请求。如果我按您建议的方式操作,则用户无法浏览应用程序。因此,我需要知道用户何时关闭应用程序,然后发送该请求;返回super.dispatchKeyEvent(事件);这段代码可以捕捉音量的上升/下降,但当我按下home按钮时,什么也没发生。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode==KeyEvent.KEYCODE_HOME){
       //Send your own custom broadcast message
    }
    return super.onKeyDown(keyCode, event);
}