【问题标题】:What is the GoogleApiClient Reconnect Policy after a connection gets suspended?连接暂停后的 GoogleApiClient 重新连接策略是什么?
【发布时间】:2016-03-24 09:26:33
【问题描述】:

GoogleApiClient 模糊的 javadoc 告诉我们:

GoogleApiClient.ConnectionCallbacks.onConnectionSuspended

将是:

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

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

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

OnConnectionFailedListener.onConnectionFailed

什么时候?

【问题讨论】:

  • 目前还没有关于 GoogleApiClient 重新连接策略的文档。我建议记录您的功能/文档request。这样可以更新文档并添加有关重新连接策略的功能。
  • 感谢您将我指向跟踪器。

标签: java android google-play-services


【解决方案1】:

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

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

我不希望它在连接失败时重试多次,或者在连接后服务再次崩溃时停止。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多