在我的 Android 程序中,我有一些下载文件的代码。这很好用,但是由于在手机上,您可以随时断开连接,我需要更改它,以便在您完成一半并且有人打电话/您失去手机接收/等时重新连接并恢复下载。我无法弄清楚如何检测 InputStream 已停止工作。请看下面的代码:
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);
}
当我失去互联网连接时,我的日志显示:
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -8024- Downloaded.
Log: -6024- Downloaded. (some lower number)
然后我的程序就挂在 while( (len1 = etc.) 上。我需要这样做,所以当互联网断开连接时,我等待互联网再次连接,然后恢复下载。