使用查询()打听下载。当你调用enqueue()时,返回值就是下载的ID。您可以通过状态以及查询:
Cursor c = downloadManager.query(new DownloadManager.Query()
.setFilterByStatus(DownloadManager.STATUS_PAUSED
| DownloadManager.STATUS_PENDING
| DownloadManager.STATUS_RUNNING));
To be notified when a download is finished, register a BroadcastReceiver for ACTION_DOWNLOAD_COMPLETE:
BroadcastReceiver onComplete = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// do something
}
};
registerReceiver(onComplete, new IntentFilter(
DownloadManager.ACTION_DOWNLOAD_COMPLETE));
请注意,您也应该监听ACTION_NOTIFICATION_CLICKED广播知道当用户点击该通知正在运行的下载。
更好的方法是显示进度条和下载文件。 为了达到此目的,您可以获取文件大小,然后使用公式来计算下载文件的百分比。 请点击此链接:http://www.androidhive.info/2012/04/android-downloading-file-by-showing-progress-bar/ 我希望你能为你的问题找到解决方案 – BhanuSingh
我不需要显示进度条,,这应该是一个后台下载,,但耗时我只是使用下载管理器insted制作一项服务,我需要的是检查文件是否正在下载,所以用户不能点击下载,而文件正在下载或下载完成 –
好的,在这种情况下,您可以选择逻辑如何计算文件下载的完成情况,请让我为您做。 – BhanuSingh