【发布时间】:2012-06-28 06:54:42
【问题描述】:
如何在 Android 中阻止用户在几秒钟内进行所有交互?
我想知道,如何使用 wait(5000); 这样的延迟时间来做到这一点
【问题讨论】:
-
永远不要这样做会导致 ANR。其他方法是使用一些进度对话框进行后台工作。
标签: android wait android-ui
如何在 Android 中阻止用户在几秒钟内进行所有交互?
我想知道,如何使用 wait(5000); 这样的延迟时间来做到这一点
【问题讨论】:
标签: android wait android-ui
您可以覆盖dispatchTouchEvent 并停止对super.dispatchTouchEvent(ev); 的调用任何触摸事件都必须经过此方法才能处理。
设置一个您控制的布尔值,并在方法中使用它来确定您是否希望阻止控制。
private boolean stopUserInteractions = false;
public boolean dispatchTouchEvent(MotionEvent ev) {
if (stopUserInteractions) {
return true;
} else {
return super.dispatchTouchEvent(ev);
}
}
【讨论】:
显示Non-cancelable progress dialog并在需要时通过代码将其关闭.......
看例子
http://www.helloandroid.com/tutorials/using-threads-and-progressdialog
【讨论】:
您可以弹出一个模式的、不可取消的进度对话框,阻止用户做任何事情。但是,您永远不应该阻塞 UI 线程本身。
【讨论】:
在 UI Block time 中使用 ProgressDialog。将 ProgressDialog 可取消设置为 false。所以用户无法访问 UI。
谢谢。
【讨论】: