代码之家  ›  专栏  ›  技术社区  ›  LittleFunny

Android:DownloadManager是以FIFO格式下载文件还是同时下载文件

  •  2
  • LittleFunny  · 技术社区  · 8 年前

    我对我的应用程序有一个要求,它必须以静默模式下载文件,并且一些文件处于非静默模式。静默模式是当应用程序开始下载文件时,用户不知道应用程序正在下载。而非静默模式,用户将知道文件正在下载。

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

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

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

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

    1 回复  |  直到 8 年前
        1
  •  2
  •   SushiHangover    8 年前

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

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

    定义于 Download 经理身份:;

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

    因此,它不是一个固定的数字,但要了解有多少线程可供下载,请抓取内部整数资源 config_MaxConcurrentDownloadsAllowed :

    Java语言:


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

    C(C)#


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

    注:

    就我个人而言,在我运行单元测试的大多数设备上 5. 但我觉得这很低 1. 在我见过的最低端Android手机上,价格为5美元;-)在定制的CDN风格的Android服务器上 50