Android下载管理器,COLUMN_STATUS是7.这意味着什么?

问题描述 投票:0回答:2

我正在尝试下载一个近200MB的zip文件。为了让我获得当前下载的字节,我使用下面的代码片段。

while ((cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager.STATUS_PENDING) ||(cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager.STATUS_RUNNING)) {
    downloadedLength = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
}

每次(cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)回报我int 7。

我想通过这个来实现的是获得下载进度,直到达到状态SUCCESS

android android-download-manager
2个回答
2
投票

如果我理解正确,您希望在应用内显示进度。

获得游标对象后,基本上可以执行此操作来显示进度。

Cursor c = dm.query(query);
if (c.moveToFirst()) {
    int totalSizeIndex = c.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES);
    int downloadedIndex = c.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR);
    long totalSize = c.getInt(totalSizeIndex);
    long downloaded = c.getInt(downloadedIndex);
    double progress = 0.0;
    if (size != -1) {
        progress = downloaded * 100.0 / totalSize;
    }
}

已下载* 100.0 / totalSize计算百分比。


0
投票

7是STATUS值的索引aka列号。

您需要调用cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS))来获取列的实际值

© www.soinside.com 2019 - 2024. All rights reserved.