Android監聽Home鍵和最近任務

IntentFilter home_filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
registerReceiver(new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS))
        {
            String reason = intent.getStringExtra("reason");
            if (reason != null)
            {
                if (reason.equals("homekey")) {
                    Log.i(TAG,"homekey");
                }else if(reason.equals("recentapps")){
                    Log.i(TAG,"recentapps");
                }
            }
        }
    }
},home_filter);
其實這個方法也並不是官方API提供的,而是其他熱心網友發現的。否則你很難想到關閉系統對話框會和Home鍵發生關係。然而看到framework代碼後,發現每次按Home鍵或者觸發最近任務就會發送Intent.ACTION_CLOSE_SYSTEM_DIALOGS。 另外關機還有關閉對話框也會發送該廣播。所以要獲得reason字段才能知道,是何原因發送的廣播。就
intent.getStringExtra("reason");官方也沒解釋。所以此方法也是一個討巧的方法。一旦framework有改動,此方法不一定會再有效
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章