对于我的应用程序,我需要与Google云端硬盘进行列表同步。我已经实现了SignIn并让Main_Activity都实现了:
com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks,
com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener
即使我阅读了完整的Android版Google Drive API文档,尤其是“商店应用数据”部分。并查看了GitHub上的示例,但我无法使其正常工作。我个人认为该文档确实让人难以理解。甚至还不清楚适用于Android的Google Drive API和Google Drive REST API之间的区别是什么,我应该在我的方案中使用哪一个。
我还注意到GitHub上的示例扩展了自定义Activity,其中包含其他方法。
你们谁能逐步解释如何使用android drive API?
我对您的挫败感很熟悉。有“ Google Drive Android API”(GDAA)和“ Drive REST API”。网上有一些很好的文档,但是要找到并理解它可能是一个挑战,尤其是因为软件包的名称是如此相似。此外,至少有两个现有版本的“ Drive REST API”,您必须保持版本直。
关于GDAA,您已经找到了本文档,但是您应该仔细阅读。我建议您做一个简单的活动,例如创建文件并从那里开始工作。
我认为您引用的GitHub上示例中的自定义Activity是BaseDemoActivity
。该类仅提供一些生命周期方法和其他一些常规例程。
Google Drive Android API(GDAA)与Play服务紧密集成,Google声称提供了更好的性能。(请参阅此处的注释):
注意:此快速入门说明了在Android应用程序中使用Drive REST API。但是,在大多数情况下,通过使用Android Drive API(与Google Play服务集成并提供更好的性能),生产的Drive应用程序将受益匪浅。在Android应用程序中使用Drive REST API之前,您应该仔细查看Android的Drive API,并在可能的情况下在您的应用程序中使用它。如果您想了解更多信息,可以使用适用于Android快速入门的Drive API。
即使如此,由于严格限制同步频率,我在大多数情况下还是放弃了GDAA。(有关更多详细信息,请参阅本文底部的注释。)
使用GDAA时,要记住的关键一件事是,即使您的代码可以在UI线程上运行,但GDAA仍不能执行它可能代表您执行的冗长任务。这意味着一旦您请求GDAA从UI线程完成某些任务,则GDAA将在后台(而不是在UI线程上)完成该工作,并通过回调将结果传递给您。
尽管这种结构是必要的,但它意味着您的代码将是GDAA调用的一系列方法,并且不一定演示您可能习惯的清晰顺序格式。我将其视为软件中的Pachinko机器。
尽管这不是分步说明,但我希望这可以帮助您指出正确的方向。
关于同步频率:更具体地说,将按照的指定上传到服务器DrivePreferencesApi
。上传通常会很快进行。但是,下载速度受到限制。请参阅本文档。
为了避免设备和服务器上的过多负载,同步请求受到速率的限制。在这种情况下,该操作将以DRIVE_RATE_LIMIT_EXCEEDED状态失败,这表明同步已在最近发生,因此不需要再次同步。经过足够的退避时间后再次尝试,该操作将成功。
我认为“退避时间”取决于所安装的Play服务的版本。根据我的经验,持续时间从几分钟到1/2小时或更长。这可能已更改,我尝试查找有关此文档,但未成功。
如果GDAA的下载限制对您不起作用,则您可能需要考虑Drive REST。您也可以考虑使用Firebase作为可能的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句