1. 程式人生 > >Android 5.1 如何監聽使用者按了home鍵

Android 5.1 如何監聽使用者按了home鍵

private BroadcastReceiver mHomeKeyEventReceiver = new BroadcastReceiver() {
    String SYSTEM_REASON = "reason";
    String SYSTEM_HOME_KEY = "homekey";
    String SYSTEM_HOME_KEY_LONG = "recentapps";

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
            String reason = intent.getStringExtra(SYSTEM_REASON);
            if (TextUtils.equals(reason, SYSTEM_HOME_KEY)) {
                 //表示按了home鍵,程式到了後臺

            }else if(TextUtils.equals(reason, SYSTEM_HOME_KEY_LONG)){
                //表示長按home鍵,顯示最近使用的程式列表

            }
        } 
    }
};

註冊廣播接收器

registerReceiver(mHomeKeyEventReceiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
如果使用者按了home鍵,定義一個標記位,程式一定會經過onPause(),在這裡做邏輯判斷,如果是home鍵盤按下的標記,就重新開啟自己的Activity,即可.