Android 監聽home鍵的動作
1.自定義一個類,繼承自BroadcastReceiver
/** * 監聽按下home鍵動作的廣播 */ class HomeReceiver extends BroadcastReceiver { private final String SYSTEM_DIALOG_REASON_KEY = "reason"; private final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey"; @Override public void onReceive(Context context, Intent intent) { Log.d(TAG, "onReceive: is home"); String action = intent.getAction(); if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) { Log.d(TAG, "onReceive: action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)"); String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY); Log.d(TAG, "onReceive: reason == " + reason); if (null == reason) { Log.d(TAG, "onReceive: null == reason"); return; } //home鍵 if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) { Log.d(TAG, "onReceive: reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)"); try { if (null != mCarPlayService) { int key = mCarPlayService.sendKey(2, true); Log.d(TAG, "honeKey is " + key); } else { Log.d(TAG, "onReceive: null == mCarPlayService"); } } catch (RemoteException e) { e.printStackTrace(); } clickHomeListener(); } else { Log.d(TAG, "onReceive: reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY) is not"); } } else { Log.d(TAG, "onReceive: action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS) is not"); } } }2.註冊監聽
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.d(TAG, "onActivityCreated: "); mActivity = getActivity(); mHomeReceiver = new HomeReceiver(); IntentFilter homeFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); mActivity.registerReceiver(mHomeReceiver, homeFilter);}3.解除監聽
@Override public void onDestroy() { super.onDestroy(); Log.d(TAG, "onDestroy: "); mActivity.unregisterReceiver(mHomeReceiver); }
相關文章
- Android Home鍵監聽Android
- Android Home鍵、鎖屏鍵監聽Android
- home鍵監聽(Android應用切換到後臺監聽)Android
- Android 使用AsyncTask 後監聽非同步載入完畢的動作Android非同步
- 動態監聽與靜態監聽
- 動態監聽和靜態監聽
- AndroidTV開發中所有的遙控器按鍵監聽及注意事項,新增home鍵監聽Android
- ORACLE動態監聽與靜態監聽Oracle
- oracle靜態監聽和動態監聽Oracle
- 【oracle】動態監聽與靜態監聽Oracle
- Android截圖監聽Android
- 同時配置動態監聽與靜態監聽
- 動態監聽與靜態監聽的一些特點。
- 【listener】oracle靜態監聽和動態監聽 【轉載】Oracle
- oracle listener 靜態監聽與動態監聽的一些小事Oracle
- 監聽div滾動高度
- 監聽動態註冊
- 動態註冊監聽
- Oracle 動態監聽配置Oracle
- 動態監聽註冊
- Android的事件處理——監聽介面方式Android事件
- Android Service 服務的應用之電話監聽器以及簡訊監聽器Android
- Oracle監聽日誌2g-監聽啟動報錯Oracle
- Android Hook 全面入侵監聽器AndroidHook
- Android.GridView事件監聽AndroidView事件
- 啟動資料庫監聽資料庫
- Oracle啟動兩個監聽Oracle
- 監聽滾動,上下翻頁
- ORACLE動態監聽總結Oracle
- oracle 監聽 靜態 動態Oracle
- rac監聽動態註冊
- 動態註冊監聽Listener
- Oracle 動態監聽註冊Oracle
- Android搖一搖、螢幕方向的監聽Android
- 【監聽】配置服務端靜態(動態)監聽/修改監聽埠及引數local_listener作用服務端
- Android 監聽生命週期工具庫Android
- Android掃碼槍監聽封裝Android封裝
- Android 監聽鍵盤彈出收起Android