Agregar un retardo a Progress Dialog

Quiero hacer que aparezca un diálogo de progreso ficticio durante 2 o 3 segundos. En realidad no hará nada más que decir la detección. Tengo el código:

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

Pero, ¿qué debo poner entre el show y la despedida para que aparezca el diálogo durante unos segundos? ¡Gracias!

La forma correcta: no bloquea el hilo principal, por lo que la interfaz de usuario permanece activa:

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

Puedes hacer algo como esto:

 new AsyncTask<Void, Void, Void> { ProgressDialog dialog = new ProgressDialog(MainActivity.this); @Override protected void onPreExecute() { super.onPreExecute(); dialog.setTitle("Please wait"); dialog.setMessage("Preparing resources..."); dialog.setCancelable(false); dialog.show(); } @Override protected Void doInBackground(Void... params) { try{ Thread.sleep(3000); } catch(Exception e) { e.printStackTrace(); } } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); if (dialog!=null && dialog.isShowing()) { dialog.dismiss(); } } }.execute(); 

No hay nada entre despedir y mostrar … el tiempo dependiendo de ti. Por ejemplo, el diálogo se mostrará antes del acceso al servidor y se descartará obtener resultados significa

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

Si necesita medios de retardo vacíos entonces use CountDownTimer llamada entre ese.

También puede utilizar CountDownTimer de Android que es mucho más eficiente que cualquier otra solución publicada y también soporta incendios en intervalos regulares a través de su método onTick() .

Echa un vistazo a este ejemplo,

  new CountDownTimer(3000, 1000) { public void onTick(long millisUntilFinished) { // You don't need anything here } public void onFinish() { dialog.dismiss(); } }.start(); 
  • Diálogo de progreso con asynctask
  • Mediaplayer actualización de progreso a seekbar no suave?
  • ¿Cómo puedo mostrar un diálogo Progress entre dos actividades?
  • Pasar argumentos a AsyncTask y devolver resultados
  • Android: actualización de la barra de progreso de la notificación, correctamente
  • Actualización del diálogo de progreso en Activity from AsyncTask
  • Android seekbar establecer estilo personalizado con nueve imágenes de parche
  • No FEATURE_INDETERMINATE_PROGRESS en ActionBarCompat para Android 2.3-
  • ProgressDialog rechaza después de girar la pantalla
  • Temporizador de cuenta atrás Android La barra de progreso circular no coincide con el temporizador
  • Mostrar ProgressDialog Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.