我可以为Android下载管理器下载不完整操作注册接收器吗?

时间:2017-06-06 07:04:10

标签: android broadcastreceiver android-download-manager

我想为下载管理器的下载不完整操作注册接收器。 实际上我有一个代码,我在下载文件时显示加载程序,并且由于存储空间不足。最终在通知托盘中下载不完整的通知。 但是我已经为DownloadManager.ACTION_DOWNLOAD_COMPLETE注册了接收器。但它从未被称为实际行动是下载不完整。所以我的装载机不会被解雇。 我的问题是如何检测INSUFFICIENT_SPACE_ERROR,所以我可以解除加载器并向用户显示相应的消息?

我尝试过的另一种选择是 - 我在下载文件之前计算SD卡上的可用空间,但在那种情况下,我应该在哪个阈值上写条件?

我的代码 -

BroadcastReceiver attachmentDownloadCompleteReceive = new BroadcastReceiver() {
        @Override
        public void onReceive(@NonNull Context context, @NonNull Intent intent) {
            String action = intent.getAction();

            if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
                long downloadId = intent.getLongExtra(
                        DownloadManager.EXTRA_DOWNLOAD_ID, 0);
                openDownloadedAttachment(context, downloadId);
            }
            else {
                // Loader Dismissed and Displayed appropriate Message to user.
            }
        }
    };

你能帮我解决这个问题吗? 任何帮助将不胜感激。 谢谢。

1 个答案:

答案 0 :(得分:0)

请参阅this示例。在此方法中,您的数据状态列将告诉您文件的确切下载状态。

因此,隐藏进度对话框并显示相应的消息。