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