Firebase存储处理正在下载中的网络中断

时间:2016-05-28 12:56:11

标签: android download firebase interruption firebase-storage

我正在尝试从firebase存储中下载一些文件。当有稳定的互联网连接时,它运作良好。但是,如果在下载内容时丢失了互联网连接,它就会继续尝试下载内容。如何检测是否没有下载内容?

我已实施onProgessListener StorageReference。但是,我不知道如何利用它来检测下载是否没有进展。

new OnProgressListener<FileDownloadTask.TaskSnapshot>() {
    @Override
    public void onProgress(FileDownloadTask.TaskSnapshot taskSnapshot) {
        //What to do with the taskSnapshot to detect if there are no progress in the download?
    }
};

1 个答案:

答案 0 :(得分:4)

上传,下载和其他操作旨在自动重试并防止您暂时中断。 如果在该时间内无法传输数据包,则可配置的超时将终止(失败)操作。 您可以使用以下方式进行设置:

//if we get interrupted for more than 2 seconds, fail the operation.
FirebaseStorage.getInstance().setMaxUploadRetryTimeMillis(2000);

上传,下载和其他操作有不同的超时时间。

通过上传,您可以尝试从中断的位置(如果您的源是文件)继续上传,即使它已被中断。要做到这一点,你需要获得&#34;上传会话uri&#34;来自上传任务。

task.addOnFailureListener(new OnFailureListener {
  @Override
  public void OnFailure(Exception error) {
     Uri uploadsession = task.getSnapshot().getUploadSessionUri();
     //if you want to retry later, feed this uri as the last parameter
     // to putFile(uri, metadata, uri)
  }
}