我有一个ListView,其中包含一个视频列表,并单击“下载视频”按钮,它在循环进度栏中显示下载进度。如果我点击一个数字视频下载,那么它将开始显示进展。但是,当我单击另一个活动并返回到相同的活动时,其余的进度将不会显示在进度栏中,也不会出现。
我应该怎么做才能看到我以前点击过的ListView中剩余的视频进度?我使用下载管理器下载视频并在进度栏中显示进度。
我想要WhatsApp中使用的相同功能;如果您单击一个视频,它将显示下载进度,以及在您重新访问页面之后。
发布于 2018-06-12 08:19:07
我们必须将downloadId保存在本地数据库中。“DownloadManager manager = (DownloadManager) DownloadManager DownloadManager.Request request = new DownloadManager.Request(Uri.parse(strUrl));request.allowScanningByMediaScanner();request.setTitle(strDownloadFileName);request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,strDownloadFileName);request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);long downloadId = manager.enqueue(request);
databaseHelper.insertProgress(positionItem,downloadId);'创建针对downloadId的私有int getProgressFromDownloadID(long donloadId){的get进度函数
DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Query q = new DownloadManager.Query();
q.setFilterById(donloadId);
Cursor cursor = manager.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));
if (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager.STATUS_SUCCESSFUL) {
}
int dl_progress = (int) ((double)bytes_downloaded / (double)bytes_total * 100f);
return dl_progress;
}`https://stackoverflow.com/questions/50659607
复制相似问题