2016-03-24 136 views
3

GoogleApiClient的模糊的javadoc告诉我们:连接暂停后,GoogleApiClient重新连接策略是什么?

GoogleApiClient.ConnectionCallbacks.onConnectionSuspended 

将是:

当客户暂时处于断开状态时调用。如果远程服务出现问题(例如崩溃或资源问题导致它被系统中止),就会发生这种情况。被调用时,所有请求都被取消,没有未完成的侦听器将被执行。 GoogleApiClient会自动尝试恢复连接。应用程序应禁用需要此服务的UI组件,并等待对onConnected(Bundle)的调用以重新启用它们。

不幸的是,它并没有告诉我们它会重试多少次“恢复”连接。是否有超时,指数退避,重试次数?

如果没有成功奇迹般地恢复连接它称之为:

OnConnectionFailedListener.onConnectionFailed 

什么时候?

+0

截至目前,还没有关于GoogleApiClient重新连接策略的文档。我建议记录你的功能/文件[请求](https://code.google.com/p/android/)。这样可以更新文档并添加有关重新连接策略的功能。 –

+0

感谢您将我指向跟踪器。 – bobymicroby

回答

0

我滚下项目和代码在此期间发生了变化......

如果我没有记错,它会尝试重新连接一次,假设连接暂停由于服务崩溃(中最常见的原因)。那么我会假设它最终会打电话onConnectionFailed()onConnected(),但我不会依赖那个。我想你可以通过在你的应用程序连接时杀死GMS进程来验证这一点,但即使有证据表明这种情况,除非有记录,否则我仍然不会依赖它。

如果连接失败,我不会指望它重试多次,或者如果连接失败并且服务再次崩溃,则永远不会停止。

如果我正在构建使用客户端的东西,并希望尽可能防御,我不会相信挂起的连接。我明确地再次调用disconnect()connect()重新建立连接。