Android - Obtención de datos XML desde web (Usando AsyncTask) y el problema relacionado Progressbar

StackOverflow https://stackoverflow.com/questions/3715179

  •  02-10-2019
  •  | 
  •  

Pregunta

Estoy extraer una datos XML de la Web utilizando HTTP GET / POST. En este momento lo he hecho de manera simple (es decir, sin threaed).

De acuerdo con el siguiente enlace, he intentado poner en práctica con la barra de progreso de diálogo con hilo http://www.ceveni.com/ 2009/09 / muestra-progreso-bar-diálogo-en-android.html

Pero ¿Cómo llego a saber acerca de la hora de finalización de la captura de XML de la web. (Es decir, cuál debe ser el tiempo de sueño y también cuando para cerrar el cuadro de diálogo barra de progreso )

Permítanme aclarar más sobre mi problema => En la actividad, cuando el usuario haga clic en "Recoger datos" botón, el cuadro de diálogo "Barra de progreso" debería apareció y debe desaparecer sólo cuando se haya completado el ir a buscar con éxito.

Creo que esto se puede hacer con " AsyncTask ", pero no haga saber cómo utilizar este concepto para este problema.

Entonces, ¿cómo lo hago?

¿Fue útil?

Solución

    public  void onClick() {
        new FetchTask(context).execute(null);
    }

    public class FetchTask extends AsyncTask<Object, Object, Object > {

    private ProgressDialog dlg;
    private Context ctx;

    public FetchTask(Context context) {
        ctx = context;
    }

    @Override
    protected void onPreExecute() {
        dlg = new ProgressDialog(ctx);
        dlg.setMessage("Loading....");
        super.onPreExecute();
    }

    @Override
    protected void onPostExecute(Object result) {
        dlg.dismiss();
        if ( result instanceof Exception ) {
            // show error message
        } else {
            // display data
        }
        super.onPostExecute(result);
    }

    @Override
    protected Object doInBackground(Object... params) {

        try {
        // String rawData = doPost("yourUrl");
        // XMLTree data = yourParser.parse(rawData);
        // return data;
        } catch ( Exception e ) {
            return e;
        }

    }

}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top