Создание GoogleApiClient для нескольких действий

Я разрабатываю приложение для Android с API Google+. У меня есть несколько действий, каждый из которых требует одного экземпляра GoogleApiClient.

Как я понимаю из этого сообщения, можно вызвать тот же экземпляр GoogleApiClient для каждого вида деятельности. Мой вопрос: как мы создаем копии GoogleApiClient?

Снова ли мы построим с помощью .addApi (), .addscope () и снова реализуем метод onConnected и OnConnectedFailedListener? Потому что это кажется повторяющимся и неэффективным. И не будут ли эти методы отменять одни и те же методы из других видов деятельности?

Solutions Collecting From Web of "Создание GoogleApiClient для нескольких действий"

Не стоит создавать несколько экземпляров GoogleApiClient . Фактически это поможет с эффективностью, если вы используете не только один API. Только услуги, которые вы запрашиваете, будут заправлены. Поэтому, если в одном из видов деятельности используется Plus, а другой – на Диске, услугу Plus не нужно закручивать, когда вы находитесь в активности Диска.

Чтобы быть ясным, рекомендуется создать отдельный экземпляр GoogleApiClient для каждого созданного GoogleApiClient Activity, Fragment, Loader, Service или Application (возможно, даже некоторых других, которые я тоже забыл).

Если вы действительно этого не хотите, используйте контекст приложения вместо активности или фрагмента для создания GoogleApiClient и сохраните ссылку на него в объекте Application.

У меня была такая же дилемма. Чтобы обойти это, я использовал BaseGameUtil … не уверен, что если вы используете это, но если вы тогда, то это просто, вы можете просто активировать каждый вид деятельности BaseGameActivity, добавить необходимые методы, а затем создать объекты GoogleApiClient obj и getApiClient, которые затем Дать вам возможность использовать GoogleApiClient во втором действии.

 mGoogleApiClient = getApiClient(); 

Если вы не используете BaseGameUtil, тогда я думаю, что вам нужно будет создать его, как вы делаете выше, что боль, по крайней мере basegameutil делает это для вас, плюс вы всегда можете изменить что-то в BGU, поскольку они больше примеров, чем библиотеки.

Надеюсь это поможет.