En mi programa Android, tengo un código que descarga un archivo. Esto funciona bien, pero desde un teléfono celular, puede desconectarse en cualquier momento, necesito cambiarlo, reconecte y reanuda la descarga cuando está a la mitad y alguien llama/pierde la recepción de la celda/etc. No puedo entender cómo detectar que InputStream ha dejado de funcionar. Ver el código de abajo:Android InputStream Internet Disconnect
InputStream in = c.getInputStream();
byte[] buffer = new byte[8024];
int len1 = 0;
while ((len1 = in.read(buffer)) > 0) {
Log("-"+len1+"- Downloaded.");
f.write(buffer,0, len1);
Thread.sleep(50);
}
Cuando pierdo la conexión a Internet, Mi registro muestra:
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -6024- Downloaded. (some lower number)
Y entonces mi programa simplemente se cuelga en el tiempo ((= LEN1 etc. necesito para que así sea cuando el Internet se desconecta espero a Internet para conectarse de nuevo y luego reanudar la descarga
Hola, gracias pero tengo una conexión HTTPURL - ¿cómo se obtiene el SocketChannel de eso? Gracias, –