Android 同时下载文件-处理文件的最佳方式

Android 同时下载文件-处理文件的最佳方式,android,Android,我正在编写一个针对API级别9或更高的应用程序。所以,我 已经决定使用SDK提供的DownloadManager类。 我的问题是第二部分: 1.下载单个文件时,如何显示进度 下载部分。我知道我可以得到列的大小和字节数 列\u字节\u下载的\u到目前为止\u距离查询下载管理器 例子但我不确定是否必须将查询放在线程中 实现一个循环,以便我可以定期轮询以更新进度 酒吧我猜,我不确定,如何定期查询-它会进入吗 主线程或线程可以作为可运行的机制来实现——我就是这样的机制 不清楚。 2.如果我必须支持多个文

我正在编写一个针对API级别9或更高的应用程序。所以,我 已经决定使用SDK提供的DownloadManager类。 我的问题是第二部分: 1.下载单个文件时,如何显示进度 下载部分。我知道我可以得到列的大小和字节数 列\u字节\u下载的\u到目前为止\u距离查询下载管理器 例子但我不确定是否必须将查询放在线程中 实现一个循环,以便我可以定期轮询以更新进度 酒吧我猜,我不确定,如何定期查询-它会进入吗 主线程或线程可以作为可运行的机制来实现——我就是这样的机制 不清楚。 2.如果我必须支持多个文件下载,那么我必须吗 在自己的线程中启动它们中的每一个?
谢谢。

如果您不需要在2.3及更高版本上构建,它会自动将其显示在状态栏中。这样做,, 来自Commonware的代码

    private static final int DOWNLOAD_SUCCESSFUL = 100;
private static final int DOWNLOAD_FAILED = 99;
    private DownloadManager mgr=null;
在创建时,请执行此操作

`mgr = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);    

        registerReceiver(onComplete,
                 new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
`

然后在文件下载的click事件中

lastDownload=
经理排队(新的DownloadManager.Request(uri)
.setAllowedNetworkTypes(DownloadManager.Request.NETWORK\u WIFI|
DownloadManager.Request.NETWORK(移动)
.setAllowedOverRoaming(假)
.setTitle(“测试文件”)
.setDescription(“下载压缩文件”)
.setDestinationNexternalPublicDir(Environment.DIRECTORY_下载,
文件名)

然后是一个广播接收器,当你下载节目时

BroadcastReceiver onComplete=new BroadcastReceiver() {
        public void onReceive(Context ctxt, Intent intent) {

            findViewById(R.id.start).setEnabled(true);  

            File unzipFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),file_name);            

            //check for new file download
            //extract if it's a new download

            if (unzipFile.exists()) {
                new UnzipFile().execute();              
            } else {
                Toast.makeText(Main.this, "Download not found!", Toast.LENGTH_LONG).show();
            }           
        }
    };`

在蜂巢上,我只能在状态栏中看到一个下载(活动下载)。在Android 2.3.3设备上,我在状态栏中看到了下载的总数,但状态栏中只显示了一个(有时是2个)活动下载进度条。我宁愿在每次下载时都显示进度条。客户端一次最多可下载4或5个文件。有什么建议吗?谢谢。然后你必须手动操作,检查文件的大小和每个文件的实际传输量。我建议在服务中这样做。