从GooglePlayServicesClient.ConnectionCallbacks文档中,应在 LocationClient 断开连接时调用 onDisconnected。从我的测试中我注意到,如果我自己断开 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 回调仅由外部事件调用,例如:
- 活动/服务关闭
- 位置客户端变得不可用