Firebase 跨进程继续上传不起作用



我一直在尝试数小时来解决问题,为什么重新启动应用程序后图像上传没有恢复。

选择图像并开始上传后,它将会话 Uri 和本地 getData uri 值设置为共享首选项:

 .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                            pBar.setVisibility(View.VISIBLE);
                            @SuppressWarnings("VisibleForTests") Uri sessionUri = taskSnapshot.getUploadSessionUri();
                            if (sessionUri != null && uploading == null) {
                                editor.putString("upload",  sessionUri.toString()).commit();
                                editor.putString("local", selectedImageUri.toString()).commit();
                                editor.putString("ref", key).commit();
                            }
                            //calculating progress percentage
                            @SuppressWarnings("VisibleForTests") int bytesTransferred = (int) taskSnapshot.getBytesTransferred();
                            @SuppressWarnings("VisibleForTests") int totalBytes = (int) taskSnapshot.getTotalByteCount();
                            int progress = (100 *  bytesTransferred) / totalBytes ;
                            pBar.setProgress(progress);
                            System.out.println("Uploading: " + progress);
                        }
                    });

现在,如果我要杀死应用程序,共享引用中的值将被保存,但即使调用该函数来恢复上传,也没有任何反应。

 uploadTask = riversRef.putFile(Uri.parse(uploadingLocal),
                        new StorageMetadata.Builder().build(), Uri.parse(uploading));

我尝试使用uploadTask.pause();uploadTask.notify();但什么都没有。

我真的不知道问题是什么..

我将函数从onActivityResult()移动到单独的void函数。

现在,当我调用刚刚创建的函数时,我收到了permission.MANAGE_DOCUMENTS错误,该错误将我指向了这个答案。所以基本上我的 uri 是导致问题的原因。使用修改后的意图重新启动应用后,上传将恢复。

最新更新