2013-05-29 189 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