PlusClient在没有网络连接的情况下调用onConnected

时间:2013-10-31 14:18:29

标签: android google-plus

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

0 个答案:

没有答案