DownloadManager прогресс загрузки не виден

Ничего - он переходит в эфир и не хранится / не используется. Само возвращаемое значение является rvalue или временным; Я считаю, что компилятор оптимизирует даже временное создание из-за того, что он фактически не используется.

0
задан Go Fudge YourSelves 17 January 2019 в 08:57
поделиться

1 ответ

  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()
                }
            }
        }

    }
0
ответ дан Go Fudge YourSelves 17 January 2019 в 08:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: