Foros del Web » Programando para Internet » Android »

Asynctask no muestra barra de progreso

Estas en el tema de Asynctask no muestra barra de progreso en el foro de Android en Foros del Web. Hola, en mi app android estoy realizando la descarga de imagenes desde un asyntask con barra de progreso. El problema es que si llamo a ...
  #1 (permalink)  
Antiguo 14/09/2014, 05:00
 
Fecha de Ingreso: noviembre-2003
Ubicación: A Coruña
Mensajes: 89
Antigüedad: 21 años
Puntos: 0
Pregunta Asynctask no muestra barra de progreso

Hola, en mi app android estoy realizando la descarga de imagenes desde un asyntask con barra de progreso. El problema es que si llamo a la funcion desde un boton me muestra la barra de progreso y todo funciona bien, pero si quiero hacer lo mismo desde codigo, las imagenes se descargan pero no se muestra la barra de progreso.

Llamo al Asynctask desde la siguiente función:

Código:
public void Imagenes(){

        new DescargarImagenes().execute(imagenes);

}

La única diferencia cuando la llamo desde el boton es que le paso un View v.

El asynctask es el siguiente:

Código:
    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case progress_bar_type:
                imgDialog = new ProgressDialog(this);
                imgDialog.setMessage("Descargando Imágenes. Por favor espere...");
                imgDialog.setIndeterminate(false);
                imgDialog.setMax(100);
                imgDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                imgDialog.setCancelable(true);
                imgDialog.show();
                return imgDialog;
            default:
                return null;
        }
    }

    class DescargarImagenes extends AsyncTask<String, String, String> {

        @Override
        protected void onPreExecute() {
            showDialog(progress_bar_type);
        }


        @Override
        protected String doInBackground(String... f_url) {
            int count;
            try {

                for (int i = 0; i < f_url.length; i++) {
                    URL url = new URL(url_imagenes + f_url[i]);
                    URLConnection conection = url.openConnection();
                    conection.connect();
                   
                    int lenghtOfFile = conection.getContentLength();

                    InputStream input = new BufferedInputStream(
                            url.openStream(), 8192);
                    System.out.println("Data::" + f_url[i]);
                   
                    OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Vinoid/" + f_url[i].replaceAll("%20"," "));

                    byte data[] = new byte[1024];

                    long total = 0;

                    while ((count = input.read(data)) != -1) {
                        total += count;

                        publishProgress(""
                                + (int) ((total * 100) / lenghtOfFile));


                        output.write(data, 0, count);
                    }

                    output.flush();


                    output.close();
                    input.close();
                }
            } catch (Exception e) {
                Toast.makeText(getApplicationContext(), "Error" + e.toString(),
                        Toast.LENGTH_SHORT).show();
            }

            return null;
        }


        protected void onProgressUpdate(String... progress) {

            imgDialog.setProgress(Integer.parseInt(progress[0]));
        }


        @Override
        protected void onPostExecute(String file_url) {

            imgDialog.dismiss();

        }

    }
¿Alguien sabe que puede estar ocurriendo o si me falta algo en el código?

Gracias

Un Saludo

Etiquetas: androi, app, bar, barra, muestra, progreso
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:37.