Несколько экземпляров 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 ниже - не технический подход.