HTTP Async Downloader con auto-resume en error

Tengo un descargador asíncrono en mi aplicación, pero a veces la conexión se pierde, especialmente cuando estoy en una conexión móvil y si el archivo es grande (> 10 MB). ¿Hay una manera de atrapar cuando una descarga se detiene y luego obligarla a reanudar con el resultado de completar la descarga?

Esta es la tarea asíncrona doInBackground :

 protected String doInBackground(String... aurl) { int count; try { URL url = new URL(aurl[0]); URLConnection conexion = url.openConnection(); // conexion.setRequestProperty("Range", "bytes=" + downloaded + "-"); conexion.connect(); int lenghtOfFile = conexion.getContentLength(); pesoVideo = lenghtOfFile / 1048576; output = "/sdcard/" + folderString + "/" + nomeFile + ".mp3"; InputStream input = new BufferedInputStream(url.openStream()); OutputStream output = new FileOutputStream( VideoDownloaderBrowserActivity.this.output); 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) { } return null; } 

Este es el onProgressUpdate :

 protected void onProgressUpdate(String... progress) { if (Integer.parseInt(progress[0]) > progresso) { ... } } 

Aquí hay un hilo discutiendo la descarga resumible en Android bajo API 9. De lo contrario DownloadManager es una buena opción también para las versiones más recientes.

Básicamente es necesario habilitar la función de bytes en su servidor para permitir la descarga reanudable.

  • No se puede analizar la matriz Json con Gson
  • Android, Java: Solicitud HTTP POST
  • RuntimeException mientras utiliza ActivityUnitTestCase, pero no mientras ActivityInstrumentationTestCase2
  • Eliminar SMS en Android 1.5
  • TextToSpeech setLanguage no funciona?
  • ImageView no estira la imagen correctamente
  • Cómo extraer el código del archivo apk
  • Vista personalizada drawArc, detecta el tacto del usuario en la trayectoria de trazado del arco
  • Java.lang.SecurityException: inválido nombre del paquete: com.google.android.gms
  • Teclado suave de Android con botones superpuestos (Captura de pantalla)
  • Android Facebook Graph api información básica que solicita
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.