2014-09-26 2 views
20

서비스에서 GoogleApiClient를 사용하여 융합 위치 업데이트를 요청하고 있습니다. 모든 것이 제대로 작동하지만 때때로 연결이 일시 중단되고 onConnectionSuspended가 호출됩니다. (ConnectionCallback의 문서) 위의 링크에서 GoogleApiClient onConnectionSuspended, mGoogleApiClient.connect()를 다시 호출해야합니까?

@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 ? ? 

} 

는 말한다 :

응용 프로그램 서비스를 필요로 UI 구성 요소를 사용하지 않도록 설정하고이를 다시 활성화 할 수 onConnected (번들)를 호출 기다려야합니다.

그러나이 onConnected 호출은 어떻게 발생합니까? mGoogleApiClient.connect()를 다시 호출해야합니까? 또는 mGoogleApiClient가 연결 일시 중지 후에도 계속 연결을 시도합니까?

답변

34

GoogleApiClient가 자동으로 다시 연결을 시도합니다. 다시 connect() 번으로 전화 할 필요가 없습니다.

+0

Hounshell 안녕하세요, 답변 해 주셔서 감사합니다.하지만 어떻게 확인할 수 있습니까? 어떤 의사가 그렇게 말하는거야? – Turkish

+23

저는 GoogleApiClient의 원작자입니다. 이것을 분명히하는 다음 릴리스를위한 문서화 노트를 추가하려고 노력할 것입니다. – Hounshell

+0

@Hounshell 감사합니다. Google 플러스에서 로그 아웃하는 과정은 지루하고 번거로운 작업입니다. 그걸 너무 문서화 해 주시겠습니까? 거기에 관한 stackOverflow에 관한 수십 가지 질문이 있습니다. 문서가 매우 좁고 오도 된 것입니다 (Facebook과 비교할 때). – VipulKumar

0

The onConnected() doc은 follwing을 말한다 : 연결 요청이 성공적으로 완료되면

() 연결 호출 한 후,이 방법은 비동기 적으로 호출됩니다.

이것은 connect()으로 전화해야한다는 것을 의미합니다. 그렇지 않으면 onConnected()은 호출되지 않습니다.

+0

GoogleApiClient를 만든 후에 connect를 호출해야한다는 것은 사실입니다. 하지만 @hounshell 응답을 기반으로, 자동으로 호출되기 때문에 다시 connect를 호출 할 필요가 없습니다. –

관련 문제