我了解你的挫败感。有“Google Drive Android API”(GDAA)和“Drive REST API”。网上有一些很好的文档,但找到它并理解它可能是一个挑战,特别是因为包的名称非常相似。此外,“Drive REST API”至少有两个现存版本,您必须保持版本清晰。
关于GDAA,您已经找到了这个
文档,但您应该仔细查看一下。我建议您做一个简单的活动,例如
创建文件,然后从那里开始工作。
我认为您在GitHub上引用的示例中的自定义Activity是
BaseDemoActivity
。该类只提供一些生命周期方法和其他常见程序。
Google Drive Android API(GDAA)与Play Services紧密集成,谷歌声称具有更好的性能。 (请参见
此处的说明):
注意:此快速入门演示了如何在Android应用程序中使用Drive REST API。但是,在大多数情况下,制作Drive应用程序将通过使用与Google Play服务集成并提供更好性能的Drive API for Android而获得强大的收益。在Android应用程序中使用Drive REST API之前,您应该仔细查看Drive API for Android并在可能的情况下在应用程序中使用它。如果您想了解更多信息,请参阅Drive API for Android快速入门。
尽管如此,由于同步频率限制的加强,我已经放弃了GDAA在大多数情况下。(有关更多详细信息,请参见本帖子底部的注释。)
当使用GDAA时,需要牢记的一个关键事项是,即使您的代码可以在UI线程上运行,但由于可能执行的任务长度较长,GDAA不能在UI线程上运行。这意味着一旦您从UI线程请求GDAA执行某个任务,GDAA将在后台(而不是在UI线程上)执行该工作,并通过回调向您提供结果。
尽管这种结构是必要的,但这意味着您的代码将是由GDAA调用的一系列方法,并且不一定会展示出您可能习惯的清晰的顺序格式。我把它看作是软件中的Pachinko机。
虽然不是一组逐步说明,但我希望这可以让您朝正确的方向前进。
关于同步频率:
具体来说,上传到服务器的内容将按照 DrivePreferencesApi
中指定的方式进行。上传通常会很快完成。然而,下载受到速率限制。请参阅此文档。
为避免设备和服务器过度负载,同步请求会受到速率限制。在这种情况下,操作将失败并显示DRIVE_RATE_LIMIT_EXCEEDED状态,这表示同步已经发生得相当频繁,因此不需要再次同步。在足够的退避持续时间后重新尝试操作即可成功。
我认为“退避持续时间”取决于安装的Play Services版本。根据我的经验,这段时间从几分钟到半个小时甚至更长。这可能已经改变了,我试图找到相关文档,但没有成功。
如果GDAA的下载限制无法满足您的需求,则可以考虑使用Drive REST。您也可以考虑Firebase作为可能的解决方案。