Android 带有百分比的DownloadManager进度条

Android 带有百分比的DownloadManager进度条,android,android-download-manager,Android,Android Download Manager,我想得到一些类似的信息: 但我不知道怎样才能得到这个百分比 我读过以下帖子: 但是我没有得到任何好的结果=( 有什么想法吗 我可以得到一个文件的总大小和下载的字节数,但我不知道如何在进度条上以百分比的形式显示这些信息 int sizeIndex = c.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES); int downloadedIndex = c.getColumnIndex(DownloadManager.COLUMN_

我想得到一些类似的信息:

但我不知道怎样才能得到这个百分比

我读过以下帖子:

但是我没有得到任何好的结果=(

有什么想法吗

我可以得到一个文件的总大小和下载的字节数,但我不知道如何在进度条上以百分比的形式显示这些信息

int sizeIndex = c.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES);
int downloadedIndex = c.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR);
int size = c.getInt(sizeIndex);
int downloaded = c.getInt(downloadedIndex);
int percentage = (downloaded * 100 / size);

开始下载时只需创建一个通知

    mNotifyManager = (NotificationManager) getApplicationContext().getSystemService(getApplicationContext().NOTIFICATION_SERVICE);
    mBuilder = new NotificationCompat.Builder(this);
    mBuilder.setContentTitle("Downloading file")
            .setContentText("Downloading... 0%")
            .setSmallIcon(R.drawable.your_icon);
    mNotifyManager.notify(YOUR_TAG, mBuilder.build());
然后,您可以使用_标记更新调用相同通知的进度

    mBuilder.setContentText("Downloading... " + CURRENT_BYTES * 100.0/TOTAL_BYTES + "%")
            .setProgress(TOTAL_BYTES, CURRENT_BYTES, false);
        mNotifyManager.notify(YOUR_TAG, mBuilder.build());

但是,如果下载管理器出现错误并且下载失败,我如何删除通知?=(不仅有一个通知。同时有多个通知。您应该跟踪通知id,然后可以调用取消(id)。在调用通知(id,notification)时设置id)。只需保存该id,您就可以稍后取消它。如果设置了notification,您也可以在单击它时将其取消。flags=notification.FLAG\u AUTO\u cancel;…无论如何,这是离题的。您应该询问有关取消通知的其他问题。希望有帮助!感谢您的帮助!=)