Android,如何接收家庭按钮单击广播接收器



在我的应用程序中,我需要在用户通过单击"注销"按钮或通过按Home home Button按钮键关闭应用程序时将注销请求发送到服务器。

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

我正在考虑的解决方案是注册接收器并在单击"主页"按钮时发送广播。因此,通过接收器,我可以启动一个服务以将登录请求发送到服务器。

我当前的问题是,每当我单击它时,我都无法获取主页按钮。这是我写的代码:

subest.xml

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

homebuttonreceiver

public class HomeButtonReceiver extends BroadcastReceiver {
    private final String TAG = "HomeButtonReceiver";
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(TAG, "inside onReceive()...");
    }
}

任何评论/建议将不胜感激。谢谢

为什么不使用 dispatchKeyEvent函数。它可以拦截主按钮按下。

@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);
}

现在您可以创建一个广播接收器,以便您可以接收您的消息

您可以在此处和此处参考如何发送广播杂物

如果您只需要找出用户何时删除应用程序,为什么不使用ActivityonPause(..)方法?

最新更新