Wednesday, 15 August 2012

android - GoogleApiClient never connected on sign out -



android - GoogleApiClient never connected on sign out -

i'm using google+ sign in on application, , followed reference such getting started , google+ sign-in android.

so situation following: have 1 loginactivity , mainactivity, both extend on baseactivity (so can share instance of googleapiclient, , necessary interfaces implementations) , when sign in, loginactivity following:

public void onconnected(bundle connectionhint) { super.onconnected(connectionhint); msigninclicked = false; launchmain(); } private void launchmain() { intent = new intent(this, mainactivity.class); startactivity(i); finish(); }

and mainactivity launch, great!

but when want sign out mainactivity following:

protected static googleapiclient mgoogleapiclient; public void signout() { if (mgoogleapiclient.isconnected()) { plus.accountapi.cleardefaultaccount(mgoogleapiclient); mgoogleapiclient.disconnect(); mgoogleapiclient.connect(); intent = new intent(getapplicationcontext(),loginactivity.class); i.setflags(intent.flag_activity_new_task| intent.flag_activity_clear_task); startactivity(i); } }

the mgoogleapiclient.isconnected() check false, , i'm never able disconnect.

besides i'm confused why should connect right after disconnect.

so i'll answering own question:

on baseactivity doing this:

protected void onstop() { super.onstop(); if (mgoogleapiclient.isconnected()) { mgoogleapiclient.disconnect(); } }

meaning when tried disconnect, disconnected. main thing here follow rules in this answer , in situation rule this:

implement in baseactivity, , have others extend that. connect/disconnect in each activity, code in 1 place.

android google-plus google-play-services

No comments:

Post a Comment