Nella mia app di gioco vorrei che l'utente effettuasse l'accesso a Google Play Services durante l'attività di avvio, quindi l'ho avuto sottoclasse BaseGameActivity
. Quindi viene avviata un'attività separata per il gioco, al termine della quale voglio aggiornare una classifica utilizzando Google Play Services, che richiede di chiamare BaseGameActivity.getApiClient()
.Come utilizzare BaseGameActivity.getApiClient() in più attività?
Come dovrei utilizzare i servizi di Google Play da un'attività diversa da quella che suddivide la sottoclasse BaseGameActivity
?
Due opzioni a cui ho pensato: passare un riferimento all'attività di avvio oppure utilizzare un gestore e inviare un messaggio all'attività di avvio. Ma non so quale metodo sarebbe meglio usare (o se una terza via è meglio) e sembra che questa potrebbe essere una situazione abbastanza comune.
C'è qualche motivo per non eseguire la sottoclasse di entrambe le attività da 'BaseGameActivity' e in quella che non desidero accedere automaticamente put getGameHelper(). SetMaxAutoSignInAttempts (0);'? – GDanger
Si potrebbe fare ciò ma il 'onCreate()' di 'BaseGameActivity' ricreverebbe' mHelper' per ogni attività e lo stato del nuovo oggetto non sarebbe necessariamente corretto - cioè gli stati interni del nuovo oggetto potrebbero non riflettere se si sono già registrati (o viceversa). Sono sicuro che c'è un modo per farlo sincronizzare correttamente, ma sembra molto sforzo invece di usare il 'GameHelper' in modo indipendente. – free3dom
Il problema con l'utilizzo di 'GameHelper' indipendentemente da AFAIK non è un buon modo per passare oggetti non selezionabili/parcellari (come' GameHelper') tra attività e renderlo statico sembra una cattiva idea dato che 'GameHelper' contiene un riferimento all'attività che l'ha creato. – GDanger