Android:DownloadManager将文件作为FIFO或同时下载

时间:2016-05-07 08:30:40

标签: android xamarin restsharp android-download-manager

我要求我的应用程序必须以静默方式下载文件,而某些文件处于非静默模式。静默模式是应用程序开始下载文件时,用户不知道应用程序正在下载。而非静默模式,用户将知道该文件正在下载。

在这种情况下,可以同时下载非静音和静音模式,但每个模式一次只能下载一个。

我想过使用DownloadManager但不确定DownloadManager是否具有控制它的这种类型的能力。

我目前有一个RestSharp库与服务器通信。当我在google上研究时,RestSharp库似乎没有办法监控下载进度。

是否有其他支持监控下载进度的xamarin库。

1 个答案:

答案 0 :(得分:2)

Android OS为此创建了专用线程池,并且创建的线程数基于内部定义的基于资源的整数,因此可以根据API版本,设备要求等进行调整...

另外,如果您查看下载队列管理,它是基于FIFO的,因此的Uris的第一个 X数失败,暂停,不允许当前网络(wifi,蜂窝)类型等将可供下载。

Download经理中定义为;

final int maxConcurrent = Resources.getSystem().getInteger( com.android.internal.R.integer.config_MaxConcurrentDownloadsAllowed);

因此它不是固定数字,但要找出可供下载的线程数量,请获取内部整数资源config_MaxConcurrentDownloadsAllowed

爪哇:

int id = Resources.getSystem().getIdentifier("config_MaxConcurrentDownloadsAllowed", "integer", "android");
int maxConcurrentDownloadsAllowed = Resources.getSystem().getInteger(id);

C#

var id = Resources.GetIdentifier("config_MaxConcurrentDownloadsAllowed", "integer", "android");
var maxConcurrentDownloadsAllowed = Resources.GetInteger(id);

注意:

就我在大多数设备上进行单元测试的个人而言,它是 5 ,但我在最低端的Android手机上看到这个低 1 曾经看过并花费5美元;-)并且在定制的CDN风格的Android服务器上它 50