2017-06-06 61 views
0

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

我试过的另一种方法是 - 我正在计算下载文件之前在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. 
      } 
     } 
    }; 

能否请你帮我这个? 任何帮助将不胜感激。 谢谢。

+0

你能分享你的Broadcast Reciever类吗? – Rohit

+0

嘿Rohit,添加了我的Receiver代码。 –

回答

0

请参考this示例。在这种方法中,您的数据状态列会告诉您文件的确切下载状态。

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

+0

我在做同样的事情。问题在于,接收器没有被调用。 –