android - 如何在 Android 上设置 Google Drive 访问超时

标签 android google-drive-api google-api-java-client

让我们列出来自 Google 云端硬盘的文件:

GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(
    context, DriveScopes.DRIVE);
Drive service = new Drive.Builder(AndroidHttp.newCompatibleTransport(), 
    new GsonFactory(), credential).build();
service.files().list().execute();

但是,例如,如果没有可用的网络连接,execute() 几乎永远都不会意识到。

从GoogleAccountCredential的源码可以看出,它使用了ExponentialBackOffPolicy,默认最大耗时为15分钟。

问题 1:有没有办法覆盖此行为并将超时限制设置为较低的值?

问题 2:service.files().list().execute() 在 AsyncTask 中运行。如果她不想等待 15 分钟超时,根据用户请求取消它的正确方法是什么?

最佳答案

感谢反馈!

似乎没有任何方法可以自定义 GoogleAccountCredential 的指数退避策略。我在这里提交了一个功能请求:

https://code.google.com/p/google-api-java-client/issues/detail?id=734

看起来也没有取消的好方法。此处提交的功能请求:

https://code.google.com/p/google-api-java-client/issues/detail?id=735

注意:我是 google-api-java-client 的所有者项目

关于android - 如何在 Android 上设置 Google Drive 访问超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14793218/

相关文章:

javascript - 谷歌云端硬盘 SDK - JavaScript : How to list SHARED FILES (not shared with me)

java - 使用 Java blogger API v3 在博客上动态发帖

android - 在 NavDirections 中找不到 safeargs 参数

google-drive-api - Google 云端硬盘更改历史记录

android - 在不将谷歌帐户添加到设备的情况下在安卓上登录谷歌驱动器

java - 将客户电子邮件列表上传到 Google Ads Management API

java.lang.IllegalStateException : getTransportChannel() called when needsExecutor() is true while using bigquery client library in dataflow

android - Google Play 要求 AndroidManifest.xml 中的 versionCode 设置为正 32 位整数

android - Kotlin Android - 从 fragment 复制到剪贴板

android - meteor raix :push notification channelId for android 8. 0.0