用户需要在按钮点击时下载多个文件。代码将检查文件是否已存在,如果不存在,则将其添加到下载队列中。我正在将所有不存在的文件添加到下载队列中。
但如果用户立即再次点击按钮,则文件将重新添加到下载队列中。那么如何检查文件是否已添加到下载管理器队列中?如果已添加,则文件不会被重新添加。
用户需要在按钮点击时下载多个文件。代码将检查文件是否已存在,如果不存在,则将其添加到下载队列中。我正在将所有不存在的文件添加到下载队列中。
但如果用户立即再次点击按钮,则文件将重新添加到下载队列中。那么如何检查文件是否已添加到下载管理器队列中?如果已添加,则文件不会被重新添加。
您应该使用DownloadManager.Query
。
这里有一个示例可以参考Download manager example
示例代码
DownloadManager.Query query = null;
Cursor c = null;
DownloadManager downloadManager = null;
downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
query = new DownloadManager.Query();
if(query!=null) {
query.setFilterByStatus(DownloadManager.STATUS_FAILED|DownloadManager.STATUS_PAUSED|DownloadManager.STATUS_SUCCESSFUL|
DownloadManager.STATUS_RUNNING|DownloadManager.STATUS_PENDING);
} else {
return;
}
c = downloadManager.query(query);
if(c.moveToFirst()) {
int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
switch(status) {
case DownloadManager.STATUS_PAUSED:
break;
case DownloadManager.STATUS_PENDING:
break;
case DownloadManager.STATUS_RUNNING:
break;
case DownloadManager.STATUS_SUCCESSFUL:
break;
}
}
getUriForDownloadedFile
检查文件是否已经在队列中。 - Oleg Bogdanov