¿Cómo mostrar el diálogo de progreso antes de iniciar una actividad en Android?
¿Cómo se muestra un diálogo de progreso antes de iniciar una actividad (es decir, mientras la actividad está cargando algunos datos) en Android?
- ¿Se puede despedir un evento cuando se desactiva Android Dialog?
- Android: Crash en rotación, horizontal a vertical
- Android: "BadTokenException: No se puede agregar ventana; Está funcionando su actividad? "Al mostrar el diálogo en PreferenciaActividad
- ¿Cómo cambiar la posición de un diálogo de progreso?
- Cómo aplicar la imagen personalizada del hilandero al diálogo de progreso en android
- ProgressDialog en Android para la nueva Actividad
- El detector de progreso de subida no se disparó (API de unidad de Google)
- ¿Cómo mostrar el diálogo de progreso en Android?
- Android: Cambio del texto del cuadro de diálogo de progreso
- Progress Dialog aparece extrañamente en dispositivos Pre-lollipop
- ¿Cómo mostrar ProgressDialog a través de lanzar una nueva Actividad?
- Android: mostrando un diálogo de progreso
- El cuadro de diálogo Progreso muestra pero no muestra la barra de progreso y el mensaje no se actualiza
Debe cargar datos en un AsyncTask y actualizar su interfaz cuando los datos terminen de cargarse.
Incluso podría iniciar una nueva actividad en el método onPostExecute()
su AsyncTask.
Más específicamente, necesitará una nueva clase que extienda AsyncTask:
public class MyTask extends AsyncTask<Void, Void, Void> { public MyTask(ProgressDialog progress) { this.progress = progress; } public void onPreExecute() { progress.show(); } public void doInBackground(Void... unused) { ... do your loading here ... } public void onPostExecute(Void unused) { progress.dismiss(); } }
Entonces en su actividad usted haría:
ProgressDialog progress = new ProgressDialog(this); progress.setMessage("Loading..."); new MyTask(progress).execute();
Cuando se inicia un proceso de larga duración en Android, siempre es recomendable hacerlo en otro hilo. A continuación, puede utilizar el subproceso de interfaz de usuario para mostrar un cuadro de diálogo de progreso. No puede mostrar un diálogo de progreso en el mismo subproceso (UI) en el que se está ejecutando el proceso.
Haga lo siguiente para iniciar su proceso
pd = ProgressDialog.show(this, "Synchronizing data", "Please wait..."); Thread t = new Thread(this); t.start();
Para esto su actividad debe implementar Runnable como sigue
public class SyncDataActivity extends Activity implements Runnable
Y finalmente un método para realizar el proceso de larga duración
@Override public void run() { //your code here }