嗨,在我的android應用程序中,我需要從服務器下載媒體文件,因爲我使用了Download Manager服務。並且我還想在ui中顯示下載的進度。下載工作完美,但只有當狀態變爲STATUS_SUCCESSFUL時,進度條纔會更新。我用下面的代碼查找下載的數據的百分比,Android下載manager.COLUMN_TOTAL_SIZE_BYTES在狀態運行期間返回-1
DownloadManager.Query q = new DownloadManager.Query();
q.setFilterById(enqueue);
Cursor cursor = dm.query(q);
cursor.moveToFirst();
int bytes_downloaded = cursor.getInt(cursor .getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
int bytes_total = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES));
final long dl_progress = (bytes_downloaded*100L)/bytes_total;
我已經注意到,bytes_total的值保持狀態-1 STATUS_RUNNING時,它只是填補了下載完成時。那麼我怎樣才能用這個計算來更新進度條。 請幫忙...
在某些設備上,根據[doc](http://developer.android.com/reference/android/app/DownloadManager.html#COLUMN_TOTAL_SIZE_BYTES),字節數保持爲-1,這是初始值。 – david