如何在一次下载多个文件时添加带有百分比的进度条

时间:2018-12-24 10:46:17

标签: android

  1. 我正在从服务器下载文件。代码在下面
  2. 单击下载后,我在服务器中就有图像和声音以及文本文件,因此它将获取所有数据(多个文件)
  3. 由于我的波纹管代码在下载数据时显示了带有计数对话框的百分比,但是问题是百分比对话框显示了每一个数据长度,但是我需要对话框显示所有内容的百分比,而不仅仅是一个内容

        private void downloadFiles(String pMain, String pFileName String pURL) {
        Log.i(TAG, "Coming to this downloadBookDetails ");
        int len;
        try {
            URL url = new URL(pURL);
            Log.i(TAG, "pDownload URL" + url);
            URLConnection ucon = url.openConnection();
            ucon.setReadTimeout(5000);
            ucon.setConnectTimeout(10000);
            ucon.connect();
            int lenghtOfFile = ucon.getContentLength();
            Log.i(TAG, "lenght of file" + lenghtOfFile);
            InputStream is = ucon.getInputStream();
            BufferedInputStream inStream = new BufferedInputStream(is, 1024 * 5);
            File directory = new File(pMainFolder, pFileName);
            Log.i(TAG, "File Name dir" + directory);
            FileOutputStream outStream = new FileOutputStream(directory);
            byte[] buff = new byte[5 * 1024];
            long total = 0;
            while ((len = inStream.read(buff)) != -1) {
                total += len;
                publishProgress("" + (int) ((total * 100) / lenghtOfFile));
                Log.i(TAG, "Progress: Bar with Count " + (int) ((total * 100) / lenghtOfFile));
                outStream.write(buff, 0, len);
            }
            outStream.flush();
            outStream.close();
            inStream.close();
        } catch (Exception e) {
            //Add Network Error.
            Log.i(TAG, "Download Error Exception " + e.getMessage());
    
            e.printStackTrace();
        }
    }
    

1 个答案:

答案 0 :(得分:0)

您尝试过此Download multiple files with one progressbar java / Android

我无法在“问题”中添加评论,因此请添加为答案。...