连接被挂起后,GoogleApiClient重新连接策略是什么?

时间:2016-03-24 09:26:33

标签: java android google-play-services

GoogleApiClient的模糊javadoc告诉我们:

GoogleApiClient.ConnectionCallbacks.onConnectionSuspended

将是:

  

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

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

如果它没有成功地神奇地恢复连接,它会调用:

OnConnectionFailedListener.onConnectionFailed

什么时候?

1 个答案:

答案 0 :(得分:0)

我已经推出了这个项目,同时代码也发生了变化......

如果我没记错的话,它会尝试重新连接一次,假设连接因服务崩溃而停止(最常见的原因)。然后我会假设它最终会调用onConnectionFailed()onConnected(),但我不会依赖它。我认为您可以通过在应用程序连接时终止GMS流程来验证这一点,但即使证据表明情况确实如此,除非有相关信息,否则我仍然不会依赖它。

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

如果我正在构建使用客户端的东西,并且我希望尽可能保持防御,我不会相信暂停的连接。我明确再次呼叫disconnect()connect()以重新建立连接。