Android中线程安全的渐进式下载

Android中线程安全的渐进式下载,android,http,download,progress,Android,Http,Download,Progress,我正在编写一个Android应用程序,它必须下载相当多的图像文件;以前的开发人员使用各种HttpClient类型的类编写了它。这些都不提供任何进度信息,如果下载中途失败,则无法恢复丢失的位(据我所知) 我们希望能够向用户报告进度,特别是当进度缓慢时,我们希望能够恢复下载,因此我使用HttpUrlConnection重新实现了这一点。它在单线程上工作得很好,但不是多线程:我不知道到底发生了什么,但是图像正在被破坏。Android表示,这种情况确实不是线程安全的 据我所知,这意味着我们必须在多线程下

我正在编写一个Android应用程序,它必须下载相当多的图像文件;以前的开发人员使用各种HttpClient类型的类编写了它。这些都不提供任何进度信息,如果下载中途失败,则无法恢复丢失的位(据我所知)

我们希望能够向用户报告进度,特别是当进度缓慢时,我们希望能够恢复下载,因此我使用HttpUrlConnection重新实现了这一点。它在单线程上工作得很好,但不是多线程:我不知道到底发生了什么,但是图像正在被破坏。Android表示,这种情况确实不是线程安全的


据我所知,这意味着我们必须在多线程下载(我的同事报告说下载速度稍快)和恢复功能之间做出选择。除了实现我自己的线程安全HTTP连接类之外,还有什么办法可以在Android上同时实现这两种功能呢?

我想到了两件事。AsyncTask类(请参阅:)就是为这类事情而构建的,该类是作为一种相当健壮的方法开发的,它可以在必要时重新启动,通过设备重新启动等方式保持。显然,这确实取决于您的情况,但请看一看,看看它们是否是您需要的东西。

这些已经在“AsyncTasks”中运行了;问题是下载似乎是相互作用的。不过,DownloadManager看起来是个不错的选择,谢谢。