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();
    }
}

これを実行した後、ネットワークがない場合でも、ログインが成功すると常にトーストが表示されます。なぜ?

4

0 に答える 0