title: Google+ sign out from a different activity
body: <p>I have started using the <code>Google+ API</code> for android, and I have created a sign-in application following this tutorial:</p>
  
  <p><a href="https://developers.google.com/+/mobile/android/sign-in">https://developers.google.com/+/mobile/android/sign-in</a></p>
  
  <p>Now, the problem is that I want to create the sign out button from a different <code>Activity</code>, and what i tried to do didn't really worked.. </p>
  
  <p>My GPlusLogin code (Activity for the Google+ Login):</p>
  
  <pre><code>import android.app.Activity;
  import android.app.ProgressDialog;
  import android.content.Intent;
  import android.content.IntentSender.SendIntentException;
  import android.os.Bundle;
  import android.util.Log;
  import android.view.View;
  import android.view.View.OnClickListener;
  import com.google.android.gms.common.*;
  import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks;
  import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
  import com.google.android.gms.plus.PlusClient;
  
  public class GPlusLogin extends Activity implements ConnectionCallbacks, OnConnectionFailedListener{
  
      private static final int REQUEST_CODE_RESOLVE_ERR = 9000;
      private static final String TAG = "GPlusLogin";
  
      private ProgressDialog mConnectionProgressDialog;
      private PlusClient mPlusClient;
      private ConnectionResult mConnectionResult;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          super.onCreate(savedInstanceState);
          setContentView(R.layout.gplus_layout);
          mPlusClient = new PlusClient.Builder(this, this, this).setVisibleActivities("http://schemas.google.com/AddActivity", "http://schemas.google.com/BuyActivity").build();
          Bundle extras = getIntent().getExtras();
          mConnectionProgressDialog = new ProgressDialog(this);
          mConnectionProgressDialog.setMessage("Signing in...");
  
          if(extras!=null){
              if(extras.getString("signout")!=null){
                  if (mPlusClient.isConnected()) {
                      mPlusClient.clearDefaultAccount();
                      mPlusClient.disconnect();
                      mPlusClient.connect();
                      finish();
                      startActivity(getIntent());
                  }
              }
          }else{
  
              findViewById(R.id.sign_in_button).setOnClickListener(new OnClickListener() {
  
                  public void onClick(View view) {
                      // TODO Auto-generated method stub
                      if (view.getId() == R.id.sign_in_button &amp;&amp; !mPlusClient.isConnected()) {
                          if (mConnectionResult == null) {
                              mConnectionProgressDialog.show();
                          } else {
                              try {
                                  mConnectionResult.startResolutionForResult(GPlusLogin.this, REQUEST_CODE_RESOLVE_ERR);
                              } catch (SendIntentException e) {
                                  // Try connecting again.
                                  mConnectionResult = null;
                                  mPlusClient.connect();
                              }
                          }
                      }
                  }
              });
          }
      }
  
      @Override
      protected void onStart() {
          // TODO Auto-generated method stub
          super.onStart();
          mPlusClient.connect();
      }
  
      @Override
      protected void onStop() {
          // TODO Auto-generated method stub
          super.onStop();
          mPlusClient.disconnect();
      }
  
      @Override
      public void onConnectionFailed(ConnectionResult result) {
          // TODO Auto-generated method stub
          if (mConnectionProgressDialog.isShowing()) {
              // The user clicked the sign-in button already. Start to resolve
              // connection errors. Wait until onConnected() to dismiss the
              // connection dialog.
              if (result.hasResolution()) {
                  try {
                      result.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR);
                  } catch (SendIntentException e) {
                      mPlusClient.connect();
                  }
              }
          }
  
          mConnectionResult = result;
      }
  
      @Override
      protected void onActivityResult(int requestCode, int responseCode, Intent intent) {
          if (requestCode == REQUEST_CODE_RESOLVE_ERR &amp;&amp; responseCode == RESULT_OK) {
              mConnectionResult = null;
              mPlusClient.connect();
          }
      }
  
      @Override
      public void onConnected() {
          // TODO Auto-generated method stub
          mConnectionProgressDialog.dismiss();
          Intent main = new Intent(GPlusLogin.this, MainActivity.class);
          main.putExtra("result", true);
          startActivity(main);
      }
  
      @Override
      public void onDisconnected() {
          // TODO Auto-generated method stub
          Log.d(TAG, "disconnected");
      }
  
  }
  </code></pre>
  
  <p>My Disconnect code on <code>MainActivity</code>:</p>
  
  <pre><code>import android.os.Bundle;
  import android.app.Activity;
  import android.content.Intent;
  import android.view.Menu;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.TextView;
  
  
  public class MainActivity extends Activity{
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          Bundle extras = getIntent().getExtras();
          if(extras==null){
              Intent intent = new Intent(this, GPlusLogin.class);
              startActivity(intent);
          }
          TextView text1 = (TextView) findViewById(R.id.text1);
          text1.setText("You Are Connected :D");
  
          Button SignOut = (Button) findViewById(R.id.sign_out_gplus);
          SignOut.setOnClickListener(new OnClickListener() {
  
              @Override
              public void onClick(View view) {
                  // TODO Auto-generated method stub
                  Intent intent = new Intent(MainActivity.this, GPlusLogin.class);
                  intent.putExtra("signout", true);
                  startActivity(intent);
              }
          });
      }
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.main, menu);
          return true;
      }
  
  
  }
  </code></pre>