2011-03-12 132 views
5

我开发了一个应用程序,必须下载非常大的文件,平均为100 MB。 一切正常,但由于正常的原因,例如移动连接数下降到0几秒钟或无线备用时间的某些时候,在服务中运行的下载(如市场更新)可能被破坏或中断。 有一种错误恢复的方式,可能与http范围? 如果有人已经有这个问题会很高兴有一个工作代码的例子。 :-) 谢谢从android下载大文件,出现错误恢复

回答

2

在服务器上,使用文件上的“split”将其拆分成许多较小的文件,然后用md5sum生成md5sum的检查文件。

在android上,你需要下载所有的部分,检查md5sum,返回并得到任何没有正确下载的东西,然后把它们放在一起。

我从来没有在android上做过这件事,但在过去的糟糕日子里,它曾多次使用过片状电话调制解调器连接。

+1

这会工作,但这不是有点矫枉过正?我不是Android开发人员,但他可以像在虚拟块中一样轻松地分割文件。从服务器请求块(使用HTTP范围),为块状态使用位域,并请求未送达的块再次返回。不需要校验和,TCP/IP将确保数据是正确的。评论,因为我没有关于在Android上的实施的答案。 – 2011-03-12 09:59:04

+0

@Ekin取决于创建HTTP范围请求比打破服务器上的文件更容易。校验和的唯一原因是在不知道文件大小的情况下处理中断的下载。 Dinsosaur-ish,我知道。 – Paul 2011-03-12 10:20:10

+0

如果我在服务器上分割文件,我不需要任何特定的调用,我只是给我的客户端提供部分校验和的不同部分的URL,以便告诉客户哪些部分无效或损坏, -下载它。我的想法是在不分割文件的情况下使用http范围,在这种情况下,如果您在服务器上没有控制权,则也可以解决问题,而不是分割文件。我的问题是更喜欢哪个是最好的做法来抓住特定的下载错误,并要求用户使用http范围方法恢复它? – 2011-03-12 12:30:51