-1

我正在尝试使用 google plus 登录,它工作正常。我有多个帐户与我的帐户相关联,所以它显示弹出窗口以选择帐户,但是当我单击取消按钮时它确实消失了。它再次出现 &再次。告诉我方法怎么做?在此处输入图像描述

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
     if (requestCode == RC_SIGN_IN) 
     {
         Log.i("RAE","Result is  ");
            if (resultCode != RESULT_OK) {
              mSignInClicked = false;
            }

            mIntentInProgress = false;

            if (!mGoogleApiClient.isConnecting()) {
              mGoogleApiClient.connect();
            }
          }


}

连接失败

@Override
    public void onConnectionFailed(ConnectionResult result) {
        // TODO Auto-generated method stub
         if (!mIntentInProgress && result.hasResolution()) {
                try {
                  mIntentInProgress = true;
                  startIntentSenderForResult(result.getResolution().getIntentSender(),
                      RC_SIGN_IN, null, 0, 0, 0);
                } catch (SendIntentException e) {
                  // The intent was canceled before it was sent.  Return to the default
                  // state and attempt to connect to get an updated ConnectionResult.
                  mIntentInProgress = false;
                  mGoogleApiClient.connect();
                }
              }

    }
4

1 回答 1

1

您没有使用值来mSignInClicked确定是否startIntentSenderForResult()- 这意味着即使用户单击取消按钮,您仍然会startIntentSenderForResult()一次又一次地调用 - 添加mSignInClicked到您的if语句中:

if (!mIntentInProgress && mSignInClicked && result.hasResolution()) {

如果您仍然希望在首次启动时获得类似自动登录的体验,您还应该在if中设置mSignInClicked为(即第一次启动活动时)。这将确保每次用户启动活动时至少执行一次。注意:您可能还想设置一个共享首选项,说明您尝试了自动登录,如果您已经尝试自动登录并且他们取消了,则不再尝试自动登录。trueonCreate()savedInstanceState == nullstartIntentSenderForResult()

于 2015-02-12T05:51:50.090 回答