监听设备home键事件

       只需要实现这么一个广播接收器就OK。如果是在onKeyDown()里面进行判断,并不能很好的判断是短按返回到了桌面,还是长按查看最近应用列表

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));