2

我的应用程序中有一个原生的 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。为什么?

4

0 回答 0