3

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

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

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

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

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

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

2 回答 2

1

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

从多个活动中访问 google plus 客户端

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

于 2013-05-30T10:00:14.383 回答
0

connect()disconnect()在后台线程中完成所有工作,因此可以在 UI 线程中调用(例如 inonStart()onStop()),而不会对应用程序的性能产生任何影响。

只要您分别调用connect()/ disconnect()in onStart()/ onStop()PlusClient它将适用于任意数量的活动。

于 2013-05-29T18:49:47.403 回答