5

如何在 Android 中阻止用户在几秒钟内进行所有交互的 UI?

我想知道,如何通过一些延迟时间来做到这一点,例如wait(5000);

4

5 回答 5

9

您可以覆盖dispatchTouchEvent并停止对super.dispatchTouchEvent(ev);任何触摸事件的调用在处理之前必须通过此方法。

设置您控制的布尔值并在方法中使用它来确定您是否希望阻止控制。

private boolean stopUserInteractions = false;

public boolean dispatchTouchEvent(MotionEvent ev) {
    if (stopUserInteractions) {
        return true;
    } else {
        return super.dispatchTouchEvent(ev);
    }
}
于 2012-06-28T06:57:40.750 回答
4

需要时通过代码显示Non-cancelable progress dialog和关闭它......

看例子

http://www.helloandroid.com/tutorials/using-threads-and-progressdialog

于 2012-06-28T06:57:27.507 回答
1

您可以弹出一个模式的、不可取消的进度对话框,阻止用户做任何事情。但是,您永远不应该阻塞 UI 线程本身。

于 2012-06-28T06:57:38.753 回答
1

在 UI Block time 中使用 ProgressDialog。将 ProgressDialog 可取消设置为 false。因此用户无法访问 UI。

谢谢。

于 2012-06-28T06:57:55.977 回答
1

由于您的问题很短,因此您将以这种方式得到答案。

您可以使用ThreadAsyncTask使某些 ProgressDialog 对用户可见。

于 2012-06-28T06:58:54.013 回答