Android FireBase存储下载 - 如何检测网络中断?

时间:2018-04-21 08:51:22

标签: java android firebase firebase-storage

我尝试使用FirebaseStorage下载较大的文件。

我的问题:当连接丢失时,下载时没有任何错误或任何错误,即使我重新连接,也没有任何反应。 当连接丢失时,在下载开始之前,OnFailure-Event将触发以下错误:"已超出操作重试限制。"。

为什么在下载时连接丢失时不会发生这种情况?

我的代码:

FirebaseStorage storage = FirebaseStorage.getInstance();
        StorageReference storageRef = storage.getReference();

       storage.setMaxDownloadRetryTimeMillis(5000);

        StorageReference islandRef = storageRef.child(download_link);

        final File localFile = new File(files_dir, filename);
        islandRef.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
                // Local temp file has been created
                Log.w( "Download", "Download done. File:" + localFile.toString());

            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception exception) {
                // Handle any errors
                Log.w("Download", "Error. Message: " + exception.getMessage());
            }
        });

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

适用于云存储的Firebase SDK具有容错功能。它将重试并恢复正在进行的下载,希望网络连接将返回(这对移动设备很常见)。

如果您想在网络连接丢失时停止下载,则必须自行检测连接丢失情况,然后取消下载。