让我们列出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分钟超时,那么在用户请求中取消它的正确方法是什么?
答案 0 :(得分:3)
感谢您的反馈!
看起来没有办法在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项目的所有者