2016-11-28 3 views
-2

Я нажал клавишу меню после того, как я выбрал одну учетную запись для входа в систему с клиентом google api, после чего я нажимаю это приложение на передний план, googleapiclient больше не подключается. конечно, я вызвал метод connect() в onstart() и отключил() в onStop(). если аккаунт подписан успешно, теперь мне не нужно выбирать учетную запись при входе в систему, я нажал клавишу меню и нажмем на нее, приложение будет успешно войти в систему!GoogleApiClient не подключается

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestIdToken(Settings.VAL_GOOGLE_REQ_ID_TOKEN).requestEmail().build(); 
     mGoogleApiClient = new GoogleApiClient.Builder(this).addOnConnectionFailedListener(this) 
       .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
       .build(); 
+0

Добро пожаловать - пожалуйста, прочтите [как задать хороший вопрос] (http://stackoverflow.com/help/how-to- просить) – micstr

ответ

0

вы используете клиент Google Api в фрагменту или деятельности Если вы хотите использовать enableAutoManage, то вы должны сделать вашу деятельность продлить FragmentActivity. Обратные вызовы, необходимые для автоматического управления GoogleApiClient, необходимы. Таким образом, самым легким решением является добавление расширения FragmentActivity к вашей деятельности. Тогда ваше приведение не подведет и приведет к сбою приложения во время выполнения.

Альтернативное решение - управлять клиентом api самостоятельно. Вы удаляете строку enableAutoManage от строителя и убедитесь, что вы сами подключаетесь/отключаетесь от клиента. Наиболее распространенным местом для этого является onStart()/onStop(). Что-то вроде ...

@Override

защищен недействительным OnCreate (Bundle savedInstanceState) {

super.onCreate(savedInstanceState); 
mGoogleApiClient = new GoogleApiClient.Builder(MainActivity.this) 
     .addApi(Places.GEO_DATA_API) 
     .addConnectionCallbacks(this).build(); 

}

@Override защищен недействительным OnStart() {

super.onStart(); 
mGoogleApiClient.connect(); 

}

@Override защищен недействительным OnStop() {

super.onStop(); 
mGoogleApiClient.disconnect(); 

}

Смежные вопросы