我有遗留代码(Android代码,如果有关系)从网址下载文件。代码将临时文件创建为目标,使用Android DownloadManager在此处下载内容,并且(在接收下载完成通知时)将下载的内容复制到实际目的地,如内容处置所指定。
这种方法有什么理由吗?作者试图解决哪些潜在问题?或者这只是一个过度设计的代码,我可以将其替换为下载到预期的最终目的地吗?
答案 0 :(得分:1)
这种方法有什么理由吗?
如果临时文件位于外部存储上,并且最终目标位于内部存储上,则解决方法是因为AFAIK DownloadManager
不支持content
Uri
值作为目标位置下载。请注意DownloadManager
在单独的过程中进行下载,因此无权访问您应用的内部存储空间。
答案 1 :(得分:0)
通常使用临时文件的原因是在下载完成之前不要覆盖实际文件(文件移动是原子操作)。这样,当您在某处加载实际文件时,您最终不会读取不完整的数据或下载失败的结果。