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:
¿Alguien sabe que puede estar ocurriendo o si me falta algo en el 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(); } }
Gracias
Un Saludo