我的应用中有一个原生的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成功登录。为什么呢?