1

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

  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做同样的事情,但它也没有用。请帮我解决我不知道的问题。这对视图不起作用吗?

4

1 回答 1

1

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

@Override
 public void onBackPressed() {
  if (view != null && view.isShowing()) {
    view.dismiss();
  } else {
    super.onBackPressed();
  }
}
于 2018-01-12T07:07:07.570 回答