Firebase继续跨进程上传无效

时间:2017-05-15 22:09:04

标签: android firebase-storage

我一直在努力工作几个小时才能解决问题所在,为什么在重新启动应用后图片上传无法恢复..

选择图像并开始上传后,会将会话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();,但没有。

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

1 个答案:

答案 0 :(得分:1)

我将功能从onActivityResult()移到了单独的void功能。

现在当我调用我刚刚创建的函数时,我收到了permission.MANAGE_DOCUMENTS错误,它指向this答案。所以基本上我的uri是导致问题的那个。一旦使用修改后的意图重新启动应用程序,上传就会恢复。