當activity中dialog設置爲不可取消時,點擊系統返回鍵是不會使dialog消失,也不會退出當前activityjava
dialog.setCancelable(false); dialog.setCanceledOnTouchOutside(false);
可是,若是此時需求須要系統返回鍵發揮做用時,重寫activity中的onKeyDown是不起做用的web
//返回鍵事件會先被dialog攔截,onKeyDown方法並不會執行 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return super.onKeyDown(keyCode, event); }
正確✔方法應該使用dialog.setOnKeyListeneride
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { doSomething(); return true; } return false; } });