我一直在尝试数小时来解决问题,为什么重新启动应用程序后图像上传没有恢复。
选择图像并开始上传后,它将会话 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 是导致问题的原因。使用修改后的意图重新启动应用后,上传将恢复。