我从这个代码中得到的状态是200。
String status = cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
200,然而,不是已知的状态码之一。
DownloadManager.STATUS_PAUSED
DownloadManager.STATUS_PENDING
DownloadManager.STATUS_RUNNING
DownloadManager.STATUS_SUCCESSFUL
DownloadManager.STATUS_FAILED
那么为什么cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS))会返回200呢?
注意:在API 10上用相同的代码和相同的下载文件样本进行测试,我只看到了预期的状态值,但在API 14或API 17上测试,我看到了200状态。
获取状态的正确方法是
int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
具体来说, Cursor
回来的 DownloadManager
是一个 DownloadManager.CursorTranslator
,它取代了 getInt()
用于处理 COLUMN_STATUS
呼叫 getString()
只是返回该列的原始值。