DownloadManager 下载进度不可见

用户10241787

我正在尝试使用 Android 的 DownloadManager 下载文件,并尝试使用日志语句在控制台打印下载。虽然文件下载正确,但我看不到下载进度的日志声明这是我的代码

 private fun downloadPdf(fileName: String?, fileExtension: String?, destinationDirectory: String?, url: String?) {
        val downloadManager = getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
        val uri = Uri.parse(url)
        val request = DownloadManager.Request(uri)
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
        request.setDestinationInExternalPublicDir(destinationDirectory, fileName + fileExtension)
        val downloadId = downloadManager.enqueue(request)

        thread {
            val query = DownloadManager.Query()
            query.setFilterById(downloadId)

            val cursor = downloadManager.query(query)

            if(cursor.moveToFirst()){
                val sizeIndex = cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)
                val downloadedIndex = cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)
                val size = cursor.getInt(sizeIndex)
                val downloaded = cursor.getInt(downloadedIndex)

                val progress: Long
                if(size != -1){
                    progress = downloaded * 100L / size
                    runOnUiThread {
                        Log.i("pritishsawantprogress",progress.toString())
                    }
                }
            }
        }
    }

任何帮助将不胜感激

用户10241787
  private fun downloadPdf(fileName: String?, fileExtension: String?, destinationDirectory: String?, url: String?) {
        val downloadManager = getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
        val uri = Uri.parse(url)
        val request = DownloadManager.Request(uri)
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
        request.setDestinationInExternalPublicDir(destinationDirectory, fileName + fileExtension)
        val downloadId = downloadManager.enqueue(request)

        thread {
            var downloading = true
            while (downloading){
                val query = DownloadManager.Query()
                query.setFilterById(downloadId)

                val cursor = downloadManager.query(query)
                if(cursor.moveToFirst()){
                    val bytesDownloaded = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR))
                    val bytesTotal = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES))

                    if(cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager.STATUS_SUCCESSFUL){
                        downloading = false
                    }

                    val progress = ((bytesDownloaded * 100L)/bytesTotal).toInt()
                    runOnUiThread {
                        Log.i("pritishsawantprogress",progress.toString())
                    }

                    cursor.close()
                }
            }
        }

    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

DownloadManager下载超过2.1 GB的文件

来自分类Dev

通过DownloadManager下载后打开apk文件

来自分类Dev

使用DownloadManager下载HTTP / HTTPS URI

来自分类Dev

Android:如何引用DownloadManager下载的文件

来自分类Dev

DownloadManager无法开始下载文件

来自分类Dev

在Android中从downloadManager查找下载完成

来自分类Dev

DownloadManager完成下载后无法移动文件

来自分类Dev

在Android中从downloadManager查找下载完成

来自分类Dev

DownloadManager IllegalStateException在DIRECTORY_DOWNLOADS中创建下载

来自分类Dev

在Android中无法通过DownloadManager下载文件

来自分类Dev

Android:DownloadManager是作为FIFO还是同时下载文件

来自分类Dev

Android DownloadManager中止下载请求123:http错误206

来自分类Dev

使用Android中的DownloadManager类进行多次下载

来自分类Dev

不能通过Android中的DownloadManager下载文件

来自分类Dev

阻止 Android DownloadManager 下载受限制的应用程序

来自分类Dev

Chrome 下载消息不可见

来自分类Dev

Android使进度对话框ProgressBar不可见

来自分类Dev

DownloadManager不在下载文件夹中存储下载的文件

来自分类Dev

DownloadManager不在下载文件夹中存储下载的文件

来自分类Dev

SSL证书握手异常中止了从CloudFront进行的DownloadManager图像下载

来自分类Dev

无法使用DownloadManager从名称为国际字符的URL下载文件

来自分类Dev

Android:如何使用ContentProvider通过DownloadManager将文件下载到内部存储器?

来自分类Dev

在不使用DownloadManager的情况下更新Android“下载”文件夹

来自分类Dev

使用DownloadManager下载视频文件时,应用程序在Android 10上崩溃

来自分类Dev

在DownloadManager上下载并在setDestinationInExternalFilesDir()中保存文件在Android 10上不起作用

来自分类Dev

使用DownloadManager从应用程序内将大文件下载到特定目录

来自分类Dev

使用api 9下载时正在加载Android DownloadManager

来自分类Dev

使用DownloadManager将文件下载到真实的SD卡,而不是模拟存储

来自分类Dev

打开由DownloadManager下载的文件会导致“文档路径无效”错误

Related 相关文章

  1. 1

    DownloadManager下载超过2.1 GB的文件

  2. 2

    通过DownloadManager下载后打开apk文件

  3. 3

    使用DownloadManager下载HTTP / HTTPS URI

  4. 4

    Android:如何引用DownloadManager下载的文件

  5. 5

    DownloadManager无法开始下载文件

  6. 6

    在Android中从downloadManager查找下载完成

  7. 7

    DownloadManager完成下载后无法移动文件

  8. 8

    在Android中从downloadManager查找下载完成

  9. 9

    DownloadManager IllegalStateException在DIRECTORY_DOWNLOADS中创建下载

  10. 10

    在Android中无法通过DownloadManager下载文件

  11. 11

    Android:DownloadManager是作为FIFO还是同时下载文件

  12. 12

    Android DownloadManager中止下载请求123:http错误206

  13. 13

    使用Android中的DownloadManager类进行多次下载

  14. 14

    不能通过Android中的DownloadManager下载文件

  15. 15

    阻止 Android DownloadManager 下载受限制的应用程序

  16. 16

    Chrome 下载消息不可见

  17. 17

    Android使进度对话框ProgressBar不可见

  18. 18

    DownloadManager不在下载文件夹中存储下载的文件

  19. 19

    DownloadManager不在下载文件夹中存储下载的文件

  20. 20

    SSL证书握手异常中止了从CloudFront进行的DownloadManager图像下载

  21. 21

    无法使用DownloadManager从名称为国际字符的URL下载文件

  22. 22

    Android:如何使用ContentProvider通过DownloadManager将文件下载到内部存储器?

  23. 23

    在不使用DownloadManager的情况下更新Android“下载”文件夹

  24. 24

    使用DownloadManager下载视频文件时,应用程序在Android 10上崩溃

  25. 25

    在DownloadManager上下载并在setDestinationInExternalFilesDir()中保存文件在Android 10上不起作用

  26. 26

    使用DownloadManager从应用程序内将大文件下载到特定目录

  27. 27

    使用api 9下载时正在加载Android DownloadManager

  28. 28

    使用DownloadManager将文件下载到真实的SD卡,而不是模拟存储

  29. 29

    打开由DownloadManager下载的文件会导致“文档路径无效”错误

热门标签

归档