我正在開發一個帶有Google+ API的Android應用程序。我有多個活動,每個活動都需要一個GoogleApiClient實例。爲多個活動創建GoogleApiClient
據我所知,從this post可以爲每個活動調用同一個GoogleApiClient實例。我的問題是我們如何專門創建GoogleApiClient的副本?
我們是否用.addApi(),.addscope()再次構建一個,並再次實現onConnected方法和OnConnectedFailedListener方法?因爲它似乎重複性和低效率。並且不會實現這些方法也會覆蓋其他活動的相同方法嗎?
我正在考慮將我的引用保留在GoogleApiClient的一個靜態和漏斗工作中,從我應用程序中幾個不同位置(即:從Activity或從接收推送消息的結果的服務)的消息隊列中進行。你能想到使用應用程序上下文來保持靜態引用GoogleApiClient的任何紅旗嗎?它與將它保留在Application對象中似乎有點不同。 –
使用應用程序上下文會帶來影響。該服務維護起來可能很昂貴。如果在不需要它的時候保持這種狀態,會導致大量額外的CPU和內存使用,這可能會讓您在低端設備上遇到問題,並且更可能導致您的應用在後臺關閉。由於這些原因,保留與應用程序上下文相關的引用是不受歡迎的。如果你打算這樣做,將它存儲在Application對象或其他單例中並不重要。 – Hounshell
感謝您的快速響應!我意識到我可以在GoogleApiClient上使用blockingConnect,因爲我在後臺線程中完成所有工作,我想我可以在GoogleApiClient上使用blockingConnect,註冊我的geofences(假設阻塞結果成功),然後立即斷開連接。我更喜歡這樣做,而不是永遠保持客戶和環境。 –