我们创建了一个与对话框一起工作的Android库。在使用三星Galaxy S1 Plus I9005和Android 2.3.6进行测试后,我们发现长按设备菜单按钮会立即关闭活动对话框。我甚至不知道长按该按钮的目的是什么。
对于不了解该设备的人,这张图片应该能说明问题:
这个问题在运行Android 4.x的设备上不会出现。我在运行Android 4.1.2的三星Galaxy S3和安装有Android 4.0.3自定义ROM的Galaxy S1上进行了测试 - 没有问题。
为了防止关闭对话框,我尝试重写onKeyDown、onKeyUp、onPrepareOptionsMenu和其他看起来相关的方法,但是没有一个方法成功或提供任何有价值的信息。当我尝试调试这些方法时,由于对话框在调试器到达任何可重写的方法之前就消失了,所以也出现了同样的情况。
对话框是通过以下方式创建的:
为了防止对话框被取消,我添加了以下内容:
![Samsung Galaxy S1](https://i.imgur.com/IN4MG9c.png)
为了防止关闭对话框,我尝试重写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);
你有没有想法为什么这会关闭对话框?
编辑
当处于“桌面”时,长按菜单按钮会启动谷歌搜索。