【发布时间】:2017-04-14 15:14:31
【问题描述】:
我正在调用一个连接到 googleapiclient 的服务。每当第一次调用服务时,一切正常,客户端已连接,Onconnected 被调用。但是,当我不停地回忆服务时,我连接了 googleapiclient,但从未调用过 Onconnected。为什么这样?是否每次都需要终止服务。代码如下:
public class ALW extends Service implements GoogleApiClient.OnConnectionFailedListener, GoogleApiClient.ConnectionCallbacks, LocationListener {
private GoogleApiClient mGoogleApiClient;
@Override
public void onDestroy() {
super.onDestroy();
if (mGoogleApiClient.isConnected()) {
mGoogleApiClient.disconnect();
}
Log.d("ALWFA", "Stopped");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("ALWFA", "Called");
if (!mGoogleApiClient.isConnected()) {
Log.e("ALWFA", "Called for Connection");
mGoogleApiClient.connect();
} else {
Log.e("ALWFA", "Already Connected");
}
//Do Work
return super.onStartCommand(intent, flags, startId);
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
buildGoogleApiClient();
}
@Override
public void onConnected(@Nullable Bundle bundle) {
Log.d("Google Client", "Connected");
//Do work
}
@Override
public void onConnectionSuspended(int i) {
System.out.println("Connection Sus");
buildGoogleApiClient();
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
Log.i("Connection Error", "onConnectionFailed:" + connectionResult.getErrorCode() + "," + connectionResult.getErrorMessage());
buildGoogleApiClient();
System.out.println("Connection Failed");
}
synchronized void buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
}
}
而且我在 Onconenctifailed 中没有收到任何错误。通常代码停留在 onStartCommand:“ALWFA Called”。每当第二次调用服务时。
【问题讨论】:
-
这就是我所做的,我称之为连接。 Log.d("ALWFA", "调用"); if (!mGoogleApiClient.isConnected()) { Log.e("ALWFA", "Called for Connection"); mGoogleApiClient.connect();
标签: java android google-api-client