【发布时间】:2013-04-06 20:51:33
【问题描述】:
所以我正在使用下载管理器在我的应用程序中下载多个文件。在开始某个活动之前,我需要这些文件完成下载。如何检查是否有活动下载,以便我可以告诉用户等到下载完成。然后,当它们完成后,我需要使一个按钮可见。我已经用谷歌搜索了这个,甚至自己(盲目地)尝试了一些代码,但没有任何效果。如果有人能将我推向正确的方向,我将不胜感激。
【问题讨论】:
标签: java android android-download-manager
所以我正在使用下载管理器在我的应用程序中下载多个文件。在开始某个活动之前,我需要这些文件完成下载。如何检查是否有活动下载,以便我可以告诉用户等到下载完成。然后,当它们完成后,我需要使一个按钮可见。我已经用谷歌搜索了这个,甚至自己(盲目地)尝试了一些代码,但没有任何效果。如果有人能将我推向正确的方向,我将不胜感激。
【问题讨论】:
标签: java android android-download-manager
使用query() 查询下载。当您调用enqueue() 时,返回值为下载的ID。也可以按状态查询:
Cursor c = downloadManager.query(new DownloadManager.Query()
.setFilterByStatus(DownloadManager.STATUS_PAUSED
| DownloadManager.STATUS_PENDING
| DownloadManager.STATUS_RUNNING));
要在下载完成时收到通知,请为 ACTION_DOWNLOAD_COMPLETE 注册一个 BroadcastReceiver:
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 广播,以了解用户何时单击了正在运行下载的通知。
【讨论】: