其他分享
首页 > 其他分享> > Android,如何通过广播接收器接收主页按钮单击?

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

作者:互联网

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

按钮没有问题,结果符合我的预期.问题是如何获得主页按钮.根据我的研究,不可能使用onKeyDown(int keyCode,KeyEvent事件),因为我们可以使用它来获取按钮.

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

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

的manifest.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函数.它可以拦截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);
   }

标签:android-homebutton,android,broadcastreceiver
来源: https://codeday.me/bug/20191009/1878571.html