【问题标题】:Check if downloads are active检查下载是否处于活动状态
【发布时间】:2013-04-06 20:51:33
【问题描述】:

所以我正在使用下载管理器在我的应用程序中下载多个文件。在开始某个活动之前,我需要这些文件完成下载。如何检查是否有活动下载,以便我可以告诉用户等到下载完成。然后,当它们完成后,我需要使一个按钮可见。我已经用谷歌搜索了这个,甚至自己(盲目地)尝试了一些代码,但没有任何效果。如果有人能将我推向正确的方向,我将不胜感激。

【问题讨论】:

    标签: java android android-download-manager


    【解决方案1】:

    使用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 广播,以了解用户何时单击了正在运行下载的通知。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-11
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 2012-06-02
      • 2017-12-30
      • 2014-05-24
      相关资源
      最近更新 更多