UploadTask(Google Play服务)在流程重启时继续上传

时间:2019-04-26 09:01:11

标签: android firebase google-cloud-storage firebase-storage

我使用UploadTask将文件上传到Firebase Storage,重新启动该过程后如何继续上传文件?每次我尝试上传未完全上传的文件时,上传都是从头开始的。

 private fun uploadFromUri(fileUri: Uri) {
        val fileFromUri = Uri.fromFile(File(Utils.getPath(this, fileUri)))

        val photoRef = storageRef.child("files")
            .child(fileFromUri.lastPathSegment ?: "_file_")

        val metadata = StorageMetadata.Builder()
            .setCustomMetadata("fileName", fileFromUri.lastPathSegment)
            .build()

            photoRef.putFile(fileUri, metadata).addOnProgressListener { taskSnapshot ->
            showProgressNotification(
                getString(R.string.progress_uploading),
                taskSnapshot.bytesTransferred,
                taskSnapshot.totalByteCount
            )
        }.continueWithTask { task ->
            if (!task.isSuccessful) {
                throw task.exception!!
            }

            photoRef.downloadUrl
        }.addOnSuccessListener { downloadUri ->
            broadcastUploadFinished(downloadUri, fileUri)
            showUploadFinishedNotification(downloadUri, fileUri)
        }.addOnFailureListener { exception ->
            broadcastUploadFinished(null, fileUri)
            showUploadFinishedNotification(null, fileUri)
        }
   }

1 个答案:

答案 0 :(得分:1)

如果该过程在之前的上传过程中终止,则无法继续上传。 Cloud Storage SDK根本不这样做。相反,您应该使用某种机制来使进程更有可能在完成上传所需的时间内保持活跃,例如前台服务。