Domanda

Voglio essere in grado di aggiornare il mio punteggio per la mia classifica in un'attività diversa diversa da quella che crea l'obj googleappiclient (l'attività principale).

Qual è il modo migliore per farlo?

Sta rendendo l'OBJ Palable il modo corretto?Se è così come puoi farlo se la classe fa parte di una libreria.

Puoi fare la statica dell'obj?È sicuro?

Qualche consiglio su come raggiungere questo sarebbe fantastico.

È stato utile?

Soluzione 2

OK Ho pensato che avrei risposto alla mia domanda in quanto ho trovato un metodo che attualmente si adatta a me. Un sacco di questo è proveniente da un'altra domanda risposta trovata qui ! .

Questo metodo utilizza il BasegameUtil, quindi andava dalla risposta di Lee dal link che posso semplicemente avere entrambe le mie attività estendono la basegameattività e aggiungere i metodi richiesti.

Io creando quindi una nuova istanza di Googleappiclient nella mia seconda attività e quindi ottieni il client API come questo:

mGoogleApiClient = getApiClient();
.

Posso passare questo intorno alla mia seconda attività e chiamare i metodi come desidero.

AS Lee afferma nella sua risposta, è possibile avere più istanze del client di Google API e non sarà ancora chiesto di accedere per ciascuno di essi in quanto sai che sei già effettuato.

Altri suggerimenti

È possibile utilizzare la classe di applicazione, una classe di modello Singleton orientata Android e potrebbe essere la tua classe base per le tue chiamate apiclienti.

Ecco un link a API Documentazione, e quisono alcuni Esempi e argomenti Perché usare Applicazione su Singleton .

Il mio vero test è: 1. Non può superare un googleappiciente come oggetto a un altro servizio o attività, utilizzandolo come un parametro intento. 2. Considerare la classe Singleton lo risolve come di seguito: + Passaggio 1: crea la classe Singleton che include oggetto googleappiclient come membro dei dati.Per favore, fai questo:

import com.google.android.gms.common.api.GoogleApiClient;

public class MyGoogleApiClient_Singleton {
    private static final String TAG = "MyGoogleApiClient_Singleton";
    private static MyGoogleApiClient_Singleton instance = null;

    private static GoogleApiClient mGoogleApiClient = null;

    protected MyGoogleApiClient_Singleton() {

    }

    public static MyGoogleApiClient_Singleton getInstance(GoogleApiClient aGoogleApiClient) {
        if(instance == null) {
            instance = new MyGoogleApiClient_Singleton();
            if (mGoogleApiClient == null)
                mGoogleApiClient = aGoogleApiClient;
        }
        return instance;
    }

    public GoogleApiClient get_GoogleApiClient(){
        return mGoogleApiClient;
    }
}   
.

    .
  • Step 2: Nella classe di attività principale Inizializza un oggetto googleappelliente quindi chiamare GetInstance con mgoogleappiclient come parametro di classe base singleton.

  • Step 3: In un altro servizio / attività che si desidera passare l'oggetto googleappiclient, basta chiamare GetInstance (NULL) di Singleton BaseClass, e chiamare Get_Googleappiclient per ottenere l'oggetto googleappogliente desiderato.

Se hai qualche problema, contattami Thienpham2008@gmail.com.

Se è necessario essere costantemente connessi al googleappiclient, probabilmente creerei una classe di singleton per gestire le chiamate googleappiclienti ( http://en.wikipedia.org/wiki/singleton_pattern ) o effettuare un servizio di fondo che eseguirebbe per l'intera app Lifecycle ( https://developer.android.com/training/best-background.html ).

Dalla documentazione dello sviluppatore :

.

googleappiclient viene utilizzato con una varietà di metodi statici. Un po 'di Questi metodi richiedono che Googleappiclient sia connesso, alcuni la coda sulle chiamate prima che googleappiclient sia collegato; Controlla la specifica. Documentazione API per determinare se è necessario essere collegati.

Se non è necessario inviare i dati immediatamente Googleappiclient sta per fare la fila dei dati da inviare per te e semplicemente inviarlo nell'attività primaria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top