我正在尝试从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?
}
};
答案 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)
}
}