在我的应用程序中,我需要在用户通过单击"注销"按钮或通过按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);
}
现在您可以创建一个广播接收器,以便您可以接收您的消息
您可以在此处和此处参考如何发送广播杂物
如果您只需要找出用户何时删除应用程序,为什么不使用Activity
的onPause(..)
方法?