2016-03-24 60 views
3

GoogleApiClient的模糊的javadoc告訴我們:連接暫停後,GoogleApiClient重新連接策略是什麼?

GoogleApiClient.ConnectionCallbacks.onConnectionSuspended 

將是:

當客戶暫時處於斷開狀態時調用。如果遠程服務出現問題(例如崩潰或資源問題導致它被系統中止),就會發生這種情況。被調用時,所有請求都被取消,沒有未完成的偵聽器將被執行。 GoogleApiClient會自動嘗試恢復連接。應用程序應禁用需要此服務的UI組件,並等待對onConnected(Bundle)的調用以重新啓用它們。

不幸的是,它並沒有告訴我們它會重試多少次「恢復」連接。是否有超時,指數退避,重試次數?

如果沒有成功奇蹟般地恢復連接它稱之爲:

OnConnectionFailedListener.onConnectionFailed 

什麼時候?

+0

截至目前,還沒有關於GoogleApiClient重新連接策略的文檔。我建議記錄你的功能/文件[請求](https://code.google.com/p/android/)。這樣可以更新文檔並添加有關重新連接策略的功能。 –

+0

感謝您將我指向跟蹤器。 – bobymicroby

回答

0

我滾下項目和代碼在此期間發生了變化......

如果我沒有記錯,它會嘗試重新連接一次,假設連接暫停由於服務崩潰(中最常見的原因)。那麼我會假設它最終會打電話onConnectionFailed()onConnected(),但我不會依賴那個。我想你可以通過在你的應用程序連接時殺死GMS進程來驗證這一點,但即使有證據表明這種情況,除非有記錄,否則我仍然不會依賴它。

如果連接失敗,我不會指望它重試多次,或者如果連接失敗並且服務再次崩潰,則永遠不會停止。

如果我正在構建使用客戶端的東西,並希望儘可能防禦,我不會相信掛起的連接。我明確地再次調用disconnect()connect()重新建立連接。