Cómo manejar el interruptor de 3G a WiFi? URLConnection tiempo de espera no lanza Excepción

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

  •  10-10-2019
  •  | 
  •  

Pregunta

Mi aplicación necesita descargar algunos archivos de gran tamaño. Yo uso un servicio para la descarga de un mostrar el progreso en una notificación. El problema es que durante ese tiempo de descarga, el usuario puede cambiar de 3G a WiFi. En ese caso, el progreso se detiene pero sin excepción. ¿Cómo puedo manejar esta situación correctamente?

URL url = new URL(myurl);
URLConnection conexion = url.openConnection();
conexion.setReadTimeout(10000);
conexion.setConnectTimeout(10000);
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
// downlod the file
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(targetFilePath);

byte data[] = new byte[1024];

long total = 0;
while ((count = input.read(data)) != -1) {
    total += count;
    // publishing the progress....
    updateProgress(downloadNM, downloadNotification, (int)total*100/lenghtOfFile);
    output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
¿Fue útil?

Solución

Tome un vistazo a la HttpClient-Biblioteca. Proporciona mucho más opciones que la clase URL, y podría ayudarle con su problema.

http://developer.android.com/reference/ org / apache / http / cliente / HttpClient.html

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