Android开发中,有时候需要捕获home和recent app按键,进行相应处理。可以通过注册如下广播接收器:
private BroadcastReceiver mHomeKeyEventReceiver = new BroadcastReceiver() {
String SYSTEM_REASON = "reason";
String SYSTEM_HOME_KEY = "homekey";
String SYSTEM_RECENT_APPS = "recentapps";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
Log.d(TAG, "ACTION_CLOSE_SYSTEM_DIALOGS");
String reason = intent.getStringExtra(SYSTEM_REASON);
Log.d(TAG, "reason - " + reason);
if (TextUtils.equals(reason, SYSTEM_HOME_KEY)) {
// Home key is pressed
}else if( TextUtils.equals(reason, SYSTEM_RECENT_APPS) ){
// Recent apps key.
}
}
}
};
其中,intent中的extra信息SYSTEM_REASON,表示的即是按下的按键,SYSTEM_HOME_KEY表示按下的事HOME键,SYSTEM_RECENT_APPS表示按下的是recent app键。