Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 关闭窗口的设备回按事件_Android_Back Button_Softkeys - Fatal编程技术网

Android 关闭窗口的设备回按事件

Android 关闭窗口的设备回按事件,android,back-button,softkeys,Android,Back Button,Softkeys,我已经创建了一个窗口,并通过广播接收器将其显示在屏幕上。但问题是,它出现在屏幕上,我想在按下“后退”按钮后将其关闭。我无法在此视图上获取按钮按下事件。我的“后退”代码如下所示- view.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.ge

我已经创建了一个窗口,并通过广播接收器将其显示在屏幕上。但问题是,它出现在屏幕上,我想在按下“后退”按钮后将其关闭。我无法在此视图上获取按钮按下事件。我的“后退”代码如下所示-

  view.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getKeyCode() == KEYCODE_BACK) {
                Log.d("LOG", "back button is pressed");

            }
            return true;
        }
    });  

但是什么也没有发生。我试图通过DISPATCHKEY执行相同的操作,但也没有用。请帮助我解决我没有解决的问题。这对视图不起作用吗?

维护窗口的全局引用并覆盖onBackPressed() 试试这个:

@Override
 public void onBackPressed() {
  if (view != null && view.isShowing()) {
    view.dismiss();
  } else {
    super.onBackPressed();
  }
}

可能会有帮助。这不在活动中。它在广播接收器中。因此OnBackPressed无法实现。