我要求我的应用程序必须以静默方式下载文件,而某些文件处于非静默模式。静默模式是应用程序开始下载文件时,用户不知道应用程序正在下载。而非静默模式,用户将知道该文件正在下载。
在这种情况下,可以同时下载非静音和静音模式,但每个模式一次只能下载一个。
我想过使用DownloadManager但不确定DownloadManager是否具有控制它的这种类型的能力。
我目前有一个RestSharp库与服务器通信。当我在google上研究时,RestSharp库似乎没有办法监控下载进度。
是否有其他支持监控下载进度的xamarin库。
答案 0 :(得分:2)
Android OS为此创建了专用线程池,并且创建的线程数基于内部定义的基于资源的整数,因此可以根据API版本,设备要求等进行调整...
另外,如果您查看下载队列管理,它是基于FIFO的,因此不的Uris的第一个 X数失败,暂停,不允许当前网络(wifi,蜂窝)类型等将可供下载。
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);
var id = Resources.GetIdentifier("config_MaxConcurrentDownloadsAllowed", "integer", "android");
var maxConcurrentDownloadsAllowed = Resources.GetInteger(id);
就我在大多数设备上进行单元测试的个人而言,它是 5 ,但我在最低端的Android手机上看到这个低 1 曾经看过并花费5美元;-)并且在定制的CDN风格的Android服务器上它 50