GoogleApiClient onConnectionSuspended,我应该再次调用mGoogleApiClient.connect()吗?

时间:2014-09-26 09:20:32

标签: android google-play-services google-api-client

我在服务中使用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)中,它说:

  

应用程序应禁用需要该服务的UI组件,并等待对onConnected(Bundle)的调用以重新启用它们。

但是对onConnected的这种调用将如何发生?我应该再次拨打mGoogleApiClient.connect()吗?或者即使在连接暂停后,mGoogleApiClient仍将继续尝试连接?

2 个答案:

答案 0 :(得分:35)

GoogleApiClient会自动尝试重新连接。您无需再次致电connect()

答案 1 :(得分:0)

The onConnected() doc说:

  

调用connect()后,当连接请求成功完成时,将异步调用此方法。

这意味着您必须致电connect(),否则onConnected()将被呼叫。