private HomePressedReceiverFrom homePressedReceiverFrom = null; private class HomePressedReceiverFrom extends BroadcastReceiver { public static final String SYSTEM_DIALOG_REASON_KEY = "reason"; public static final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey"; private static final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps"; @Override public void onReceive(Context context, Intent intent) { String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY); if (SYSTEM_DIALOG_REASON_HOME_KEY.equals(reason)) { //这里就是在点击Home键后要做的操作。 } } }
使用结束后解绑:
if (homePressedReceiverFrom != null) { unregisterReceiver(homePressedReceiverFrom); }
使用前注册广播:
homePressedReceiverFrom = new HomePressedReceiverFrom(); final IntentFilter homeFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); registerReceiver(homePressedReceiverFrom, homeFilter);