在Google+ Android PlusClient documentation中,它声明您应该在onStart()和onStop()中执行.connect()和.disconnect()。
我有几个活动(大约8个)以各种方式堆叠在彼此之上,其中大约4个活动需要PlusClient。
我的基础活动(所有这些活动都使用)..我正在考虑将PlusClient逻辑放在那里。
在不了解PlusClient本身的内部工作原理的情况下,我不确定在大量活动中一直运行connect()/ disconnect()的重量级。这在上面引用的文档中并不清楚。 connect()/ disconnect()方法在后台线程中执行网络请求。用户点击所有活动并且做多个网络请求做同样的事情对我来说似乎很浪费。
我想我正在将它与Facebook Android API进行比较,对我来说似乎有一个“会话”类型模式,它表现得更有效率。
答案 0 :(得分:1)
PlusClient
旨在成为Google Play服务的轻量级界面,请参阅:
Access google plus client from multiple activities
Google Play服务将为您管理OAuth 2.0访问令牌,该令牌大致相当于一个'会话'。当特定活动调用PlusClient.connect()
且Google Play服务已为您的应用的用户设置了访问令牌时,它会立即返回您应用的onConnected()
回调。
正如ianhanniballake所说,获取访问令牌所需的任何网络调用都是在后台执行的,因此它们不会给您的UI线程带来问题。
有关在基本活动中使用PlusClient的示例,请查看PhotoHunt示例应用程序:
答案 1 :(得分:0)
connect()
和disconnect()
都在后台线程中工作,因此可以在UI线程中调用(例如在onStart()
或onStop()
中)而不会影响你的申请表现。
只要您分别在connect()
/ disconnect()
中呼叫onStart()
/ onStop()
,PlusClient
将适用于任意数量的活动。< / p>