Подтвердить что ты не робот

GoogleApiClient onConnectionSuspended, должен ли я снова вызвать mGoogleApiClient.connect()?

Я использую GoogleApiClient в службе для запроса платных обновлений местоположения. Все работает правильно, но иногда соединение приостанавливается и вызывается onConnectionSuspended.

@Override
public void onCreate() {
    ...
    mGoogleApiClient = new GoogleApiClient.Builder(this) // this is a Context
    .addApi(LocationServices.API)
    .addConnectionCallbacks(this)  // this is a [GoogleApiClient.ConnectionCallbacks][1]
    .addOnConnectionFailedListener(this) //
    .build();

    mGoogleApiClient.connect();

    ...
}

@Override
public void onConnectionSuspended(int arg0) {

    // what should i do here ? should i call mGoogleApiClient.connect() again ? ? 

}

В ссылке выше (ConnectionCallback doc) говорится:

Приложения должны отключать компоненты пользовательского интерфейса, требующие службы, и ждать вызова onConnected (Bundle) для их повторного включения.

Но как произойдет этот вызов onConnected? Должен ли я снова вызвать mGoogleApiClient.connect()? или mGoogleApiClient будет продолжать пытаться подключиться даже после подключения?

4b9b3361

Ответ 1

GoogleApiClient автоматически попытается повторно подключиться. Вам не нужно снова звонить connect().

Ответ 2

onConnected() doc говорит следующее:

После вызова connect() этот метод будет вызываться асинхронно, когда запрос на соединение успешно завершен.

Это означает, что вы должны вызвать connect() иначе onConnected() не будет вызываться.