En mi aplicación que estoy haciendo un trabajo intenso en AsyncTask
progreso como lo sugiere tutoriales Android y mostrando un ProgressDialog
en mi principal mi actividad:Actualización de diálogo en la Actividad de AsyncTask
dialog = ProgressDialog.show(MyActivity.this, "title", "text");
new MyTask().execute(request);
donde luego en MyTask
he puesto resultados de vuelta a la actividad:
class MyTask extends AsyncTask<Request, Void, Result> {
@Override protected Result doInBackground(Request... params) {
// do some intense work here and return result
}
@Override protected void onPostExecute(Result res) {
postResult(res);
}
}
y en consecuencia se coloque en la actividad principal que ocultar el diálogo:
protected void postResult(Result res) {
dialog.dismiss();
// do something more here with result...
}
Así que todo está funcionando bien aquí, pero me gustaría de alguna manera actualizar el cuadro de diálogo de progreso para poder mostrar al usuario un progreso real en lugar de un mensaje ficticio "Por favor espere ...". ¿Puedo de alguna manera acceder al diálogo de progreso desde MyTask.doInBackground
, donde todo el trabajo está hecho?
Según tengo entendido, se ejecuta como un subproceso separado, por lo que no puedo "hablar" con la actividad principal desde allí y es por eso que utilizo onPostExecute
para devolverle el resultado. Pero el problema es que onPostExecute
se llama solo cuando todo el trabajo ya está hecho y me gustaría actualizar el progreso del diálogo en el medio de hacer algo.
¿Algún consejo sobre cómo hacer esto?
Uh, de alguna manera se perdió en esa parte docs, gracias! – Laimoncijus