当我从另一个 activity return 时,如何在 RecyclerView 中显示 'download in progess' 多个视频的进度条?
How can I show 'download in progess' in progress bars of multiple videos in RecyclerView when I return from another activity?
我有一个 ListView,其中包含一个视频列表和点击下载视频按钮,该按钮在圆形进度条中显示下载进度。如果我点击一个数字视频进行下载,它就会开始显示进度。但是当我点击另一个activity并返回同一个activity时,进度条中没有显示剩余的进度,也没有出现。
如何才能在之前点击的ListView中看到剩余的视频进度?我使用下载管理器下载视频并在进度条中显示进度。
我想要 WhatsApp 中使用的相同功能;如果您点击视频,它会显示下载进度以及您重新访问该页面后的进度。
我们必须将 downloadId 保存在本地数据库中。
`DownloadManager 管理器 = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request 请求 = 新 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(请求);
databaseHelper.insertProgress(positionItem,downloadId);'
创建根据 downloadId 获取进度的函数
` private int getProgressFromDownloadID(long donloadId){
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;
}`
我有一个 ListView,其中包含一个视频列表和点击下载视频按钮,该按钮在圆形进度条中显示下载进度。如果我点击一个数字视频进行下载,它就会开始显示进度。但是当我点击另一个activity并返回同一个activity时,进度条中没有显示剩余的进度,也没有出现。
如何才能在之前点击的ListView中看到剩余的视频进度?我使用下载管理器下载视频并在进度条中显示进度。
我想要 WhatsApp 中使用的相同功能;如果您点击视频,它会显示下载进度以及您重新访问该页面后的进度。
我们必须将 downloadId 保存在本地数据库中。 `DownloadManager 管理器 = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); DownloadManager.Request 请求 = 新 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(请求);
databaseHelper.insertProgress(positionItem,downloadId);'
创建根据 downloadId 获取进度的函数 ` private int getProgressFromDownloadID(long donloadId){
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;
}`