【问题标题】:Google+ Android PlusClient connection/disconnectionGoogle+ Android Plus客户端连接/断开
【发布时间】:2013-05-25 01:36:31
【问题描述】:

在 Google+ Android PlusClient documentation 中声明您应该在 onStart() 和 onStop() 中执行 .connect() 和 .disconnect()。

我有几个活动(大约 8 个)以各种方式堆叠在一起,其中大约 4 个活动需要 PlusClient。

我的基本活动(所有这些活动都使用)。我正在考虑将 PlusClient 逻辑放在那里。

在不了解 PlusClient 本身的内部工作原理的情况下,我不确定在大量活动中始终运行 connect()/disconnect() 有多么重要。这在上面引用的文档中并不清楚。 connect() / disconnect() 方法在后台线程中执行网络请求。对我来说,用户点击所有活动并执行多个网络请求做同一件事似乎很浪费。

我想我是在将它与 Facebook Android API 进行比较,在我看来,它似乎有一个“会话”类型的模式,它表现得更高效。

  • 对于经常浏览多个活动的应用来说,这真的是最好的模式吗?
  • 这些方法能否优雅地应对没有连接的情况?

【问题讨论】:

    标签: android google-plus


    【解决方案1】:

    PlusClient 旨在成为 Google Play 服务的轻量级接口,请参阅:

    Access google plus client from multiple activities

    Google Play 服务将为您管理一个大致相当于“会话”的 OAuth 2.0 访问令牌。当特定的 Activity 调用 PlusClient.connect() 并且 Google Play 服务已经拥有您应用的用户访问令牌时,它将立即在您的应用的 onConnected() 回调中返回。

    正如 ianhanniballake 所说,获取访问令牌所需的任何网络调用都是在后台执行的,因此它们不会对您的 UI 线程造成问题。

    有关在基本活动中使用 PlusClient 的示例,请查看 PhotoHunt 示例应用程序:

    https://github.com/googleplus/gplus-photohunt-client-android/tree/master/src/com/google/plus/samples/photohunt

    【讨论】:

      【解决方案2】:

      connect()disconnect() 都在后台线程中工作,因此可以在 UI 线程中调用(例如在 onStart()onStop() 中),而不会影响应用程序的性能。

      只要您分别在onStart()/onStop() 中调用connect()/disconnect()PlusClient 就可以处理任意数量的活动。

      【讨论】:

      • 我知道连接/断开连接方法是高效的,因为我假设 G+ 团队已经对此进行了排序:-)。抱歉,我的问题有点含糊,因为我想我只是对推荐的模式感到惊讶。对于 stackoverflow 来说,这可能不是一个理想的问题,因为它没有准确的答案。我稍微更新了我的问题。
      猜你喜欢
      • 2010-11-01
      • 2017-07-17
      • 2021-12-05
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多