嗨,在我的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