Android 下载管理与节能下载最佳实践
1. 使用下载管理器
下载管理器是一项服务,旨在优化长时间运行的下载处理。它通过管理 HTTP 连接、监控连接变化和系统重启,确保每个下载都能成功完成。不过,下载管理器管理的下载文件存储在全局可访问的位置,因此不适合对隐私敏感的下载。
当满足以下条件时,使用下载管理器是个不错的选择:
- 下载文件较大,可能会在用户会话之间在后台继续下载。
- 成功完成下载很重要。
- 下载的文件将与其他应用程序共享,如图像或 PDF。
默认情况下,下载管理器下载的文件存储在共享下载缓存目录( Environment.getDownloadCacheDirectory
)中,这意味着其他应用程序可以访问这些文件,并且如果系统需要空间,这些文件可能会被删除。同样,这些文件将通过下载应用程序进行管理,这意味着用户可以手动删除下载的文件。
要访问下载管理器,可使用 getSystemService
方法请求 DOWNLOAD_SERVICE
:
DownloadManager downloadManager =
(DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
由于下载管理器使用互联网,因此你的应用需要在其清单中请求 INTERNET
权限才能使用下载管理器: