检查下载是否有效

use*_*912 2 java android android-download-manager

所以我使用Download Manager在我的应用程序中下载多个文件.在开始某项活动之前,我需要这些文件才能完成下载.如何检查是否有活动下载,因此我可以告诉用户等待下载完成.然后,当它们完成后,我需要显示一个按钮.我用谷歌搜索了这个,甚至自己尝试了一些代码(盲目地)并且没有任何作用.如果有人能够朝着正确的方向推动我,我将不胜感激.

qui*_*int 6

使用query()打听下载.当您致电时enqueue(),返回值是下载的ID.您也可以按状态查询:

Cursor c = downloadManager.query(new DownloadManager.Query()
        .setFilterByStatus(DownloadManager.STATUS_PAUSED
                | DownloadManager.STATUS_PENDING
                | DownloadManager.STATUS_RUNNING));
Run Code Online (Sandbox Code Playgroud)

要在下载完成时收到通知,请注册以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));
Run Code Online (Sandbox Code Playgroud)

请注意,您还应该收听ACTION_NOTIFICATION_CLICKED广播,以了解用户何时单击了正在运行的下载通知.