Несколько экземпляров Google API Client?

У меня есть активность A, которая запускает GoogleApiClient, подключается и запускает обработку в AsyncTask, которая может занять секунды или минуты.

Между тем пользователь запускает активность B, которая создает собственный GoogleApiClient с подключением.

Вопрос: может ли приложение иметь несколько экземпляров GoogleApiClient, подключенных и работающих одновременно, или я должен поддерживать однопользовательское приложение с моими собственными семафорами?

Ответы

Ответ 1

Возможно наличие нескольких подключенных GoogleApiClients, возможно, неэффективных. Вам нужно быть осторожным, используя GoogleApiClient с AsyncTasks, чтобы он не был отключен, если активность уходит.

Рассмотрите возможность управления GoogleApliClient в сохраненном фрагменте. См. http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html

Ответ 2

Совершенно верно, чтобы поддерживать как можно больше GoogleApiClients, и часто есть веские причины для этого (разделение фрагментов, разных учетных записей и т.д.). Это также не особенно неэффективно. Стоимость двух клиентов меньше, чем на 1% выше стоимости одного клиента.

Это может сбить с толку, если все они пытаются разрешить ошибки, поэтому, вероятно, неплохо заставить клиентов Fragment игнорировать сбои подключения и иметь клиентский уровень активности или уровня приложения, ответственный за решение проблем.

Ответ 3

Проблема заключается в использовании очень общих знаний о составе ООП и шаблона проектирования Factory. Высказывание примерно 1%, например, @Hounshell ниже - не технический подход.