我一直在努力工作几个小时才能解决问题所在,为什么在重新启动应用后图片上传无法恢复..
选择图像并开始上传后,会将会话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();
,但没有。
我真的不知道问题是什么..
答案 0 :(得分:1)
我将功能从onActivityResult()
移到了单独的void
功能。
现在当我调用我刚刚创建的函数时,我收到了permission.MANAGE_DOCUMENTS
错误,它指向this答案。所以基本上我的uri是导致问题的那个。一旦使用修改后的意图重新启动应用程序,上传就会恢复。