Android ProgressDialog将在以下情况下消失;搜索“;按手机上的键

Android ProgressDialog将在以下情况下消失;搜索“;按手机上的键,android,progressdialog,Android,Progressdialog,在创建活动时,我们连接到远程系统并下载数据。我们一直向用户显示一个可取消的ProgressDialog。下载是使用AsyncTask完成的。在preExecute()中,我们显示该对话框,在postExecute()中,我们取消该对话框 问题是,当下载正在进行且ProgressDialog显示时,如果用户按下设备上的“搜索”按钮,ProgressDialog将消失。后台线程仍在运行 是什么导致这种行为?如何避免这种情况 请帮忙 谢谢。这应该可以解决这个问题(注意我把它放在对话框生成器上): 也许

在创建活动时,我们连接到远程系统并下载数据。我们一直向用户显示一个可取消的ProgressDialog。下载是使用AsyncTask完成的。在preExecute()中,我们显示该对话框,在postExecute()中,我们取消该对话框

问题是,当下载正在进行且ProgressDialog显示时,如果用户按下设备上的“搜索”按钮,ProgressDialog将消失。后台线程仍在运行

是什么导致这种行为?如何避免这种情况

请帮忙


谢谢。

这应该可以解决这个问题(注意我把它放在对话框生成器上):

也许它甚至有可能抓住积极和消极的按钮按下,并只处理这些,返回真的任何其他键。如果你能弄明白的话我会很好奇

PS:我读到对话框中有更多的“洞”,也就是说,你可以不用点击对话框本身的任何按钮就可以把它去掉。这显然是一个。有人知道其他人吗


PS2:这似乎是重复的

我认为实现这一点有捷径(就像某些财产一样)。无论如何,非常感谢!
.setOnKeyListener(new DialogInterface.OnKeyListener() {

    @Override
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_SEARCH && event.getRepeatCount() == 0) {
            return true; // Pretend we processed it
        }
        return false; // Any other keys are still processed as normal
    }
})