使用安卓下载管理器,我正在尝试同步实现PDF文件的多个下载(即,在成功完成上一个请求后生成请求的实例),在广播接收器中发出DOWNLOAD_SUCCESS通知后不久,生成同一请求的重复副本(具有相同的请求ID),并隐式启动DownlaodManager。第二次下载失败,并且 DownlaodManager 给出 DownloadManager.status = 错误无法恢复。因此,不会下载pdf。仅当我尝试同步多个下载时,才会发生这种情况。任何帮助,不胜感激。
我注意到,如果您在当前完成后立即开始另一个下载,则会发生此错误。因此,我通过在完成和下一次下载开始之间的当前线程中插入睡眠时间来解决此问题......我使用了 Thread.sleep(1000),但你可以尝试其他值。(确保你没有在UIThread中这样做)。对我有用;)
您是否在三星设备上运行您的应用程序?我对Nexus S,Galaxy Tab 10.1和一个我不记得的名字有同样的问题(他们有Android版本2.3.6,3.2和4.0.4),但从来没有在HTC Nexus One,HTC Sensation(4.0.x)和HTC Explorer(2.3.5)或模拟器上。
我有这个后果:
06-05 17:42:26.756: INFO/DownloadManager(12113): Initiating request for download 1551
06-05 17:42:27.057: INFO/ololo(17021): Status for content://downloads/my_downloads/1551: file exists
06-05 17:42:27.137: INFO/DownloadManager(12113): Initiating request for download 1551
06-05 17:42:27.197: WARN/DownloadManager(12113): Aborting request for download 1551: Trying to resume a download that can't be resumed
06-05 17:42:27.247: WARN/ImageView(17021): Unable to open content: content://downloads/my_downloads/1551
我认为这是一个非常有趣的问题。
有人说这是三星和其他一些供应商的问题。我的解决方案是实现我自己的下载管理器或使用其他人的。