2013-05-29 142 views
3

在Google+ Android PlusClient documentation中,它声明您应该在onStart()和onStop()中执行.connect()和.disconnect()。Google+ Android PlusClient连接/断开连接

我有几种活动(约8种)以各种方式堆叠在彼此之上,其中大约4种活动需要PlusClient。

我的基地活动(所有这些活动使用)..我想把PlusClient逻辑放在那里。

不知道PlusClient本身的内部工作原理我不确定在负载活动中始终运行connect()/ disconnect()是多么重量级。这在上面引用的文档中并不清楚。 connect()/ disconnect()方法在后台线程中执行网络请求。用户单击所有活动并执行多个网络请求做同样的事情对我来说似乎很浪费。

我想我将这与Facebook Android API进行比较,这对我来说似乎有一个“Session”类型模式,它表现为更高效。

  • 这真的是最好的模式,采用一个应用程序浏览多个活动很多?
  • 这些方法可以应付优雅的无连接吗?

回答

0

connect()disconnect()做所有的工作在后台线程,因此可以在UI线程不会对您的应用程序的性能有任何影响被调用(如onStart()onStop())。

只要你在onStart()/onStop()调用connect()/disconnect(),分别PlusClient将任意数量的活动工作。

+0

我知道connnect /断开的方法是高性能的,因为我假定G +小组已排序时:-)。道歉,我的问题有点含糊,因为我想我只是对推荐的模式感到惊讶。这可能不是一个理想的问题,因为它没有一个确切的答案。我已经更新了一些问题。 –

1

PlusClient的设计是一个轻量级的接口谷歌播放服务,请参见:

Access google plus client from multiple activities

谷歌播放服务将会为您管理使用OAuth 2.0访问令牌,这大约相当于一个“会话”。当某个特定活动调用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