你可以只注册一个接收者。在它的onReceive方法中,intent参数应该有一个长的额外值,其下载ID为:
long downloadId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
这是开始下载时应保存的ID:
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
Request request = new Request(Uri.parse("YOUR_LINK"));
long queueID = dm.enqueue(request);
接下来,您可以提取有关下载文件的必要数据:
Query query = new Query();
query.setFilterById(queueID);
Cursor c = dm.query(query);
if (c.moveToFirst()) {
String uriString = c.getString(
c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
String mediaType = c.getString(
c.getColumnIndex(DownloadManager.COLUMN_MEDIA_TYPE));
//TODO IMPLEMENT
}
注意:使用的查询是DownloadManager.Query