GooglePlayServicesClient.ConnectionCallbacksのドキュメントからonDisconnected は、LocationClient が切断されたときに呼び出される必要があります。私のテストから、LocationClient を自分で切断すると呼び出されないことに気付きました。
これが私が持っている最も基本的なサンプルコードです。
public class MainActivity extends ActionBarActivity implements GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener {
private LocationClient locationClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
locationClient = new LocationClient(getApplicationContext(), this, this);
locationClient.connect();
}
@Override
public void onConnected(Bundle bundle) {
Log.d("APP", "Location Client Connected");
locationClient.disconnect();
Log.d("APP", "Client is connected " + locationClient.isConnected());
}
@Override
public void onDisconnected() {
Log.d("APP", "Location Client Disconnected");
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
Log.d("APP", "Location Client connect failed");
}
}
onConnected() コールバックを受け取りましたが、onDisconnected() コールバックを受け取りませんでした。クライアントの接続ステータスを出力する onConnected コールバックでは、正しく「false」と出力されます。
私は何かを誤解していますか、それとも onDisconnected コールバックは次のような外部イベントによってのみ呼び出されます:
- アクティビティ/サービスのシャットダウン
- ロケーション クライアントが利用できなくなる