检查下载活跃(Check if downloads are active)

2019-08-23 01:40发布

所以我使用的下载管理器下载我的应用程序的多个文件。 我需要这些文件开始某项活动之前完成下载。 我如何检查是否有活动的下载,所以我可以告诉用户要等到下载结束。 然后,他们完成的时候,我需要一个按钮可见。 我GOOGLE了这一点,甚至尝试了一些自己的代码(盲目),并没有什么作品。 如果有人能轻推我朝着正确的方向我会很感激。

Answer 1:

使用query()打听下载。 当你调用enqueue()返回值是下载的ID。 您可以通过状态以及查询:

Cursor c = downloadManager.query(new DownloadManager.Query()
        .setFilterByStatus(DownloadManager.STATUS_PAUSED
                | DownloadManager.STATUS_PENDING
                | DownloadManager.STATUS_RUNNING));

通知当下载完成后,注册一个BroadcastReceiverACTION_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广播知道当用户点击该通知正在运行的下载。



文章来源: Check if downloads are active