In meinem Android-Programm habe ich einen Code, der eine Datei herunterlädt. Das funktioniert gut, aber da auf einem Handy die Verbindung jederzeit unterbrochen werden kann, muss ich es so ändern, dass die Verbindung wiederhergestellt und der Download fortgesetzt wird, wenn man auf halbem Weg ist und jemand anruft/der Empfang unterbrochen wird/etc. Ich kann nicht herausfinden, wie man erkennt, dass der InputStream nicht mehr funktioniert. Siehe den Code unten:
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);
}
Wenn ich die Internetverbindung verliere, wird in meinem Protokoll angezeigt:
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -6024- Downloaded. (some lower number)
Und dann bleibt mein Programm einfach an der while( (len1 = etc.) hängen. Ich muss es so einrichten, dass ich, wenn die Internetverbindung unterbrochen wird, warte, bis das Internet wieder verbunden ist, und dann den Download fortsetze.