Sto sviluppando un'applicazione Android con Google+ API. Sto avendo più attività che richiedono ciascuna un'istanza di GoogleApiClient.Creazione GoogleApiClient per molteplici attività
quanto mi risulta da this post è possibile chiamare stessa istanza di GoogleApiClient per ogni attività. La mia domanda è: come possiamo creare copie di GoogleApiClient in modo specifico?
Costruiamo di nuovo uno con .addApi(), .addscope() e implementiamo nuovamente il metodo onConnected e il metodo OnConnectedFailedListener? Perché sembra ripetitivo e inefficiente. E l'implementazione di questi metodi non sovrascriverà gli stessi metodi anche da altre attività?
Sto pensando di tenere il mio riferimento a GoogleApiClient in un lavoro statico e imbuto ad esso in una coda di messaggi da diversi luoghi diversi nella mia app (cioè .: da un'attività o da Servizi a seguito di ricezione di un messaggio push). Riesci a pensare a eventuali bandiere rosse nel mantenere un riferimento statico a GoogleApiClient, utilizzando il contesto dell'applicazione? Sembra poco diverso dal tenerlo nell'oggetto Application. –
L'uso del contesto dell'applicazione ha implicazioni. Il servizio può essere costoso da mantenere. Mantenerlo quando non ne hai bisogno causerà una notevole quantità di CPU e memoria in più quando puoi farti incappare in problemi su dispositivi di fascia bassa, ed è più probabile che la tua app venga chiusa quando è in background. Mantenere un riferimento ad esso legato al contesto dell'applicazione è disapprovato per questi motivi. Se lo farai comunque, non importa se lo memorizzi nell'oggetto Application o in qualche altro singleton. – Hounshell
Grazie per la rapida risposta! Mi sono reso conto che posso usare blockingConnect su GoogleApiClient e dato che sto facendo tutto il mio lavoro in un thread in background Immagino che posso usare appena blockingConnect su GoogleApiClient, registrarsi per le mie geofences (ipotizzando un risultato positivo su blockingResult) e scollegare subito dopo. Mi sento meglio a farlo in questo modo piuttosto che mantenere il cliente e il contesto in giro per sempre. –