关键事件执行多次android

时间:2016-06-09 11:45:09

标签: android dialog

我正在我的应用程序中的一个活动中显示对话框。当我在对话框中检测到关键事件时,它正在多次执行。我必须回到之前的活动而不解除对话框。任何人都不知道它吗?

 @Override
        public boolean onKey(DialogInterface arg0, int keyCode,
                             KeyEvent event) {

            if (keyCode == KeyEvent.KEYCODE_BACK && IsClicked==false) {

                if (GlobalApp.activity != null) {

                    Log.i("Activity",""+GlobalApp.activity);
                    IsClicked=true;

                    GlobalApp.activity.onBackPressed();

                    dialog_Footer.dismiss();
                }

            }

            return true;
        }

1 个答案:

答案 0 :(得分:1)

它被调用两次,一次用于按键,第二次用于释放它。试试这个:

    @Override
    public boolean onKey(DialogInterface arg0, int keyCode,
                         KeyEvent event) {

        if (event.getAction()!=KeyEvent.ACTION_DOWN) return true;

        if (keyCode == KeyEvent.KEYCODE_BACK && IsClicked==false) {

            if (GlobalApp.activity != null) {

                Log.i("Activity",""+GlobalApp.activity);
                IsClicked=true;

                GlobalApp.activity.onBackPressed();

                dialog_Footer.dismiss();
            }

        }

        return true;
    }