单击搜索按钮(Android)时阻止ProgressDialog被解雇

Ran*_*ku' 41 android dialog progressdialog

在长时间运行的操作中,我正在显示一个弹出对话框(从中ProgressDialog阻止其他操作发生).

我已经使它不可取消setCancelable(false),因此我无法使用后退按钮关闭它,但令人惊讶的是,搜索硬件按钮会取消对话框!

更确切地说,显示全局搜索应用程序,当我回到我的应用程序时,对话框已被解除.

知道如何防止对话被解雇吗?

QQQ*_*ons 45

这工作(注意我把它放在对话框构建器上):

.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
    }
})
Run Code Online (Sandbox Code Playgroud)

也许它甚至可以抓住正面和负面按钮,处理这些按钮,对任何其他按键都返回true.如果你能弄明白的话会很好奇......

PS:我在某个地方读到了对话框中有更多的"漏洞",即你可以摆脱它而不会碰到它上面的任何按钮.这显然是一个.有人知道其他人吗?


Joh*_*ing 35

setCanceledOnTouchOutside(false);
Run Code Online (Sandbox Code Playgroud)