Android 延迟时显示进度条?

Android 延迟时显示进度条?,android,delay,progressdialog,Android,Delay,Progressdialog,在我的应用程序中,我希望有5秒的延迟,在这5秒中,用户应该看到进度对话框 我试过这个 progressdialog.show(); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } progressdialog.dismiss(); 但是当线程睡眠时,ProgesDialog也

在我的应用程序中,我希望有5秒的延迟,在这5秒中,用户应该看到进度对话框 我试过这个

    progressdialog.show();
  try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    progressdialog.dismiss();
但是当线程睡眠时,ProgesDialog也不会显示

 new CountDownTimer(6000, 1000) {
            public void onFinish() {
               mProgressDialog.dismiss();
              // my whole code
            }

            public void onTick(long millisUntilFinished) {
                mProgressDialog.show();
            }
        }.start();
这个很好用

        progressDialog.show();

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                progressDialog.dismiss();
            }
        },3000);

这很好

在onFinish中编写代码有什么问题?使用线程而不是当前线程,当前您正在休眠当前ui线程。我在代码中使用了大约15-20次延迟,因此我必须进行大量更改。所以我在寻找替代方法正如mcd所说,你必须使用一个线程,我会使用一个处理程序来postDelayed,将代码放入一个方法,并在runnable run方法中调用该方法。在onFinish中编写代码有什么问题?使用线程而不是当前线程,目前你正在休眠当前的ui线程。我在代码中使用了大约15-20次延迟,所以我必须做很多更改。因此,我正在寻找替代方法正如mcd所说,你必须使用一个线程,我会使用一个处理程序来postDelayed,将代码放入一个方法中,并在runnable run方法中调用该方法。请不要只发布代码作为答案,而是解释代码的作用以及它如何解决问题。带有解释的答案通常质量更高,更有可能吸引更多的选票。请不要只发布代码作为答案,而是包括代码的作用以及它如何解决问题的解释。带有解释的答案通常质量更高,更有可能吸引更多的选票。
        progressDialog.show();

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                progressDialog.dismiss();
            }
        },3000);