【发布时间】:2015-05-22 14:22:10
【问题描述】:
我在 Google Drive Android Api 中介绍为 docs 和 examples 显示。
我创建了两个扩展示例的 BaseDemoActivity 的活动:第一个将空文件添加到 Drive,在每个文件上自定义一些 CustomProperties,第二个从 Drive 列出添加的文件,并获取每个文件的拥有的 CustomProperties。
第一个活动 - 添加文件的代码如下:
DriveFolder folder = Drive.DriveApi.getFolder(getGoogleApiClient(),
mFolderDriveId);
CustomPropertyKey customPropertyKeyExample = new CustomPropertyKey(
"custom", CustomPropertyKey.PRIVATE);
MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
.setTitle("New empty file")
.setMimeType("text/plain")
.setCustomProperty(customPropertyKeyExample, "xyz")
.build();
folder.createFile(getGoogleApiClient(), changeSet, null)
.setResultCallback(fileCallback);
第二个活动 - 读取如下属性的代码:
for (Iterator<Metadata> i = result.getMetadataBuffer().iterator(); i
.hasNext();) {
Metadata mChildren = ((Metadata) i.next());
if (!mChildren.isTrashed()) {
Map<CustomPropertyKey, String> mapProperties = mChildren
.getCustomProperties();
if (mapProperties.get(customPropertyKeyExample) == null)
// THIS TEST RETURNS TRUE UNTIL DRIVE SYNC EXECUTES
}
}
}
它们可以工作,但我注意到第二个活动(列表活动)必须等待 Drive 变量同步时间才能使 CustomProperties 可用。
有没有办法在另一个活动添加自定义属性后立即从一个活动中获取它们?
【问题讨论】:
-
自定义属性应该立即可用。您的代码中没有什么是有问题的。您能否发布两个活动的完整代码以帮助我们调试?
-
这两个活动的代码与链接显示的示例相同。我的推断是 Title 和 Content 在
createFile()之后立即可用,而 CustomProperties 需要同步才能使用,因为它是更新。
标签: android google-drive-api google-drive-android-api