所以我使用下载管理器在我的应用中下载多个文件。在开始某项活动之前,我需要这些文件才能完成下载。如何检查是否有活动下载,因此我可以告诉用户等待下载完成。然后,当它们完成后,我需要显示一个按钮。我用谷歌搜索了这个,甚至自己尝试了一些代码(盲目地)并且没有任何作用。如果有人能够朝着正确的方向推动我,我将感激不尽。
答案 0 :(得分:6)
使用query()
查询下载内容。当您致电enqueue()
时,返回值是下载的ID。您也可以按状态查询:
Cursor c = downloadManager.query(new DownloadManager.Query()
.setFilterByStatus(DownloadManager.STATUS_PAUSED
| DownloadManager.STATUS_PENDING
| DownloadManager.STATUS_RUNNING));
要在下载完成时收到通知,请为BroadcastReceiver
注册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
广播,以了解用户何时点击了正在运行下载的通知。