Como implementar Progress Dialog

Hoy veremos como implementar este tipo de ventana de progreso que se suele utilizar cuando necesitamos realizar alguna tarea que requiera de mucho procesamiento. Lo que se quiere lograr es evitar que la aplicación parezca tildada y mostrar al usuario qué es lo que está sucediendo.

Para empezar hay que decir que además utilizaremos un objeto que extenderá de la clase AsyncTask, que será la clase en la cual se realizará la operación en cuestión y la cual manejará la ventana a mostrar. Sin más vamos al código:


public class MyTask extends AsyncTask<Void, Void, Void> {

 ProgressDialog progress;
 MainActivity act;

 public MyTask(ProgressDialog progress, MainActivity act) {
 this.progress = progress;
 this.act = act;
 }

public void onPreExecute() {
 progress.show();
//aquí se puede colocar código a ejecutarse previo
//a la operación
 }

public void onPostExecute(Void unused) {
//aquí se puede colocar código que
//se ejecutará tras finalizar
 progress.dismiss();
 }

 protected Void doInBackground(Void... params) {

//realizar la operación aquí

 return null;
 }

}

Si necesitan trabajar con algún objeto en particular pueden pasarlo como parámetro en el constructor de esta clase, o bien utilizarlo desde la actividad misma que ya estamos pasando.

Desde nuestra actividad realizamos lo siguiente:

ProgressDialog progress = new ProgressDialog(this);
 progress.setMessage("Actualizando datos, por favor espere...");
 new MyTask(progress, this).execute();

Le pasamos el dialogo a la tarea junto con la actividad y la ejecutamos. Hay formas de personalizar el cuadro de dialogo que se muestra, si les interesa pueden chequear la documentación.


2 thoughts on “Como implementar Progress Dialog

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s