UploadTask (сервисы Google Play) продолжают загрузку при перезапуске процесса - PullRequest
0 голосов
/ 26 апреля 2019

Я использую 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 Ответ

1 голос
/ 26 апреля 2019

Невозможно продолжить загрузку, если процесс был прерван в середине предыдущей загрузки. Cloud Storage SDK просто не делает этого. Вместо этого вы должны использовать какой-то механизм, чтобы повысить вероятность того, что процесс останется в живых столько, сколько потребуется для завершения загрузки, например, служба переднего плана.

...