IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
final String SYSTEM_DIALOG_REASON_KEY = "reason";
final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (SYSTEM_DIALOG_REASON_HOME_KEY.equals(reason)) {
stopLaunch();
finish();
}
}
}
};
registerReceiver(mHomeKeyMonitorReceiver, intentFilter);
private final BroadcastReceiver mHomeKeyMonitorReceiver = new BroadcastReceiver() {
final String SYSTEM_DIALOG_REASON_KEY = "reason";
final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (SYSTEM_DIALOG_REASON_HOME_KEY.equals(reason)) {
stopLaunch();
finish();
}
}
}
};
本文介绍了一种在Android应用中监听Home键被按下事件的方法。通过使用BroadcastReceiver接收系统广播,并设置IntentFilter过滤ACTION_CLOSE_SYSTEM_DIALOGS动作,可以捕捉到Home键触发的系统对话框关闭事件。进一步地,可以通过获取Intent中的额外信息来判断是否为Home键操作。

368

被折叠的 条评论
为什么被折叠?



