我们创建了一个使用对话框的 android 库。在我们体验过的带有 Android 2.3.6 的三星 Galaxy S1 Plus I9005 上对其进行测试后,长按设备菜单按钮会立即关闭活动对话框。我什至不知道长按那个按钮的目的。对于不了解该设备的人,这张照片应该告诉你我的意思:
在运行 Android 4.x 的设备上不会出现此问题。我在运行 Android 4.1.2 的三星 Galaxy S3 甚至是带有 Android 4.0.3 自定义 ROM 的 Galaxy S1 上对其进行了测试——没问题。
为了抑制关闭对话框,我尝试覆盖onKeyDown
,onKeyUp
和onPrepareOptionsMenu
其他似乎相关的方法,但它们都没有带来成功或任何有价值的信息。当我尝试调试这些方法时也发生了同样的情况,因为在调试器到达我可以覆盖的任何方法之前对话框就消失了。
使用以下方式创建对话框:
@Override
public Dialog onCreateDialog(final int pId) {
Dialog dialog;
switch (pId) {
case LOADING_DIALOG:
dialog = DialogCreator.createLoadingDialog(MyActivity.this));
break;
default:
dialog = null;
}
super.onCreateDialog(pId);
return dialog;
}
这DialogCreator
只是使用以下方法创建一个 AlertDialog:
new AlertDialog.Builder(pContext).create();
为了防止对话框被取消,我添加了:
alertDialog.setCanceledOnTouchOutside(false);
alertDialog.setCancelable(false);
有人知道为什么这会关闭对话框吗?
编辑
在“桌面”上长按菜单按钮会启动 Google 搜索。