向Progress Dialog添加延迟

时间:2010-11-17 21:19:07

标签: android delay progressdialog

我想让虚拟进度对话框出现2或3秒钟。除了说检测之外,它实际上不会做任何事情。我有代码:

    ProgressDialog dialog = ProgressDialog.show(this, "", "Detecting...",
            true);
    dialog.show();

    dialog.dismiss();

但是我在演出和解雇之间放置了什么让对话框显示几秒钟?谢谢!

5 个答案:

答案 0 :(得分:55)

正确的方法 - 它不会阻止你的主线程,因此UI保持响应:

dialog.show();

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    public void run() {
        dialog.dismiss();
    }
}, 3000); // 3000 milliseconds delay

答案 1 :(得分:3)

        progress.setProgress(100);
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            public void run() {
                pdialog.dismiss();
            }}, 3000);

答案 2 :(得分:2)

您还可以使用Android的CountDownTimer,它比任何其他发布的解决方案更有效,并且还通过其{{{}支持 定期发送 1}}方法。

看一下这个例子,

onTick()

答案 3 :(得分:0)

解雇和表演之间没有任何事情......时间取决于你。例如,对话框将在服务器访问之前显示,它将忽略获取结果意味着

 dialog.show();
 ServerCall();
 dialog.close();

如果你需要空延迟意味着在那之间使用CountDownTimer调用..

答案 4 :(得分:0)

如果某人正在寻找Xamarin.Android使用C#)解决方案( of Peter Knego's answer ),请按以下步骤操作:

new Handler().PostDelayed(() => { 
    dialog.dismiss();
}, 1000);