我的应用程序中有一个原生的 Google+ 按钮,当它被点击时,我会PlusClient.connect()
为我的活动调用该方法,并且通常运行得很好。
在我的测试阶段,我看到即使在与任何网络服务断开连接后,客户端仍然会到达该onConnected
方法,即使我确定没有办法这样做。
如果我不能,任何人都可以解释客户认为我是如何连接的吗?
这是我的代码:
@Override
public void onClick(View v) {
didUserClickDone = false;
switch (v.getId()) {
case R.id.profile_google_plus_signin:
if(mPlusClient != null && !mPlusClient.isConnected()){
if (mConnectionResult == null) {
} else {
try {
mConnectionResult.startResolutionForResult(this,
REQUEST_CODE_RESOLVE_ERR);
} catch (SendIntentException e) {
// Try connecting again.
}
}
mConnectionResult = null;
mPlusClient.connect();
}
break;
}
}
@Override
public void onConnectionFailed(ConnectionResult result) {
if (result.hasResolution()) {
try {
result.startResolutionForResult(this,
REQUEST_CODE_RESOLVE_ERR);
} catch (SendIntentException e) {
Log.e(TAG, "Failed to start resolution with error", e);
Toast.makeText(EditProfileActivity.this, R.string.activity_profile_google_plus_failure_toast_text, Toast.LENGTH_LONG).show();
}
}
mConnectionResult = result;
}
@Override
public void onConnected(Bundle bundle) {
if(mPlusClient.isConnected()){
Toast.makeText(EditProfileActivity.this, R.string.activity_profile_google_plus_success_toast_text, Toast.LENGTH_LONG).show();
getUserInfoFromGooglePlus();
}else {
Toast.makeText(EditProfileActivity.this, R.string.activity_profile_google_plus_failure_toast_text, Toast.LENGTH_LONG).show();
}
}
@Override
public void onDisconnected() {
}
private void getUserInfoFromGooglePlus() {
if(mPlusClient.isConnected()){
// DO AWESOME STUFF
mPlusClient.clearDefaultAccount();
mPlusClient.disconnect();
}
}
运行此之后,即使我没有网络,我总是会得到成功登录的 Toast。为什么?