我是Android Google Drive SDK的新用户,因此我实施了一项服务来接收完成事件,以便在用户的驱动器中保存我创建的DriveId
个文件上传。
这是我用来上传文件的代码,请注意,如果原始文件在放入google drive sdk请求后被请求,我会将其删除:
ExecutionOptions executionOptions = new ExecutionOptions.Builder()
.setNotifyOnCompletion(true)
.setTrackingTag(documentFileId)
.build();
driveFileResult.getDriveFile()
.open(mGoogleApiClient, DriveFile.MODE_READ_WRITE, null)
.setResultCallback(result -> {
DriveContents driveContents = result.getDriveContents();
driveContents.commit(mGoogleApiClient, null, executionOptions)
.setResultCallback(status -> {
if (!status.isSuccess()) {
// handle bad status
return;
}
// Once the file has been passed to google drive it should be deleted
// if the delete extra parameter was passed
if (isFileDeletable && file != null) {
if (file.exists()) file.delete();
}
hideNotification();
});
});
这里是完成事件的服务代码。
public class UploadCompletionService extends DriveEventService {
@Override
public void onCompletion(CompletionEvent completionEvent) {
String driveId = completionEvent.getDriveId().getResourceId();
// THE LOGIC GOES HERE
completionEvent.dismiss();
}
}
所以问题是频率,我上传一个文件,然后立即得到事件,然后我创建第二个文件,事件需要一点时间来检索成功,然后两个或更多文件后来事件不是再叫了。
我想知道当我从驱动器内容中获取结果回调时问题是否与删除文件有关,或者是否有必要我确保关闭或释放我没有计算的资源,或者如果在我完成事件之前删除本地文件不是一个好主意。我做错了什么?
提前致谢。