Pasando el objeto GoogleApiClient de una actividad a otra

Quiero ser capaz de actualizar mi puntuación para mi clasificación en una actividad diferente a la que crea el obj GoogleApiClient (la actividad principal).

¿Cuál es la mejor manera de hacer esto?

¿Está haciendo el obj parcelable de la manera correcta? Si es así, ¿cómo puede hacerlo si la clase forma parte de una biblioteca?

¿Puedes hacer el obj estático? ¿es seguro?

Cualquier consejo sobre cómo lograr esto sería genial.

Podrías usar la clase Application, una clase de patrón Singleton orientada a Android y podría ser tu clase base para tus llamadas de ApiClient.

Aquí hay un enlace a la documentación de la API , y aquí hay algunos ejemplos , así como los argumentos por qué utilizar la aplicación sobre Singleton .

Ok, pensé que iba a responder a mi propia pregunta, ya que he encontrado un método que actualmente me conviene. ¡Mucho de esto ha venido de otra pregunta contestada encontrada aquí !

Este método utiliza el basegameutil así que va de la respuesta de Lee del acoplamiento puedo apenas tener mis dos actividades extender el BaseGameActivity y agregar los métodos requeridos.

A continuación, crear una nueva instancia de la GoogleApiClient en mi segunda actividad y luego obtener el cliente api como este:

mGoogleApiClient = getApiClient(); 

Ahora puedo pasar esto alrededor de mi segunda actividad y llamar a los métodos como deseo.

Como afirma Lee en su respuesta, puede tener varias instancias del cliente google api y todavía no se le pedirá que inicie sesión para cada uno de ellos, ya que sabe que ya está iniciado sesión.

Mi prueba real es: 1. No se puede pasar un GoogleApiClient como un objeto a otro servicio o actividad, al usarlo como un parámetro de intención. 2. Deje que la clase Singleton lo solucione como se muestra a continuación: + Paso 1: Haga una clase Singleton que incluya el objeto GoogleApiClient como miembro de datos. Por favor, haga esto:

 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; } } 
  • Paso 2: En la clase de actividad principal, inicialice un objeto GoogleApiClient y luego llame a getInstance con mGoogleApiClient como parámetro de la clase base Singleton.

  • Paso 3: En otro servicio / actividad a la que desea pasar el objeto GoogleApiClient, llame a getInstance (null) de Singleton baseclass y llame a get_GoogleApiClient para obtener el objeto GoogleApiClient deseado.

Si tienes algún problema, póngase en contacto conmigo [email protected].

Si necesita estar constantemente conectado a GoogleApiClient, entonces probablemente haría una clase singleton para manejar las llamadas de GoogleApiClient ( http://en.wikipedia.org/wiki/Singleton_pattern ) o hacer un servicio de fondo que se ejecutaría durante todo el ciclo de vida de la aplicación ( https://developer.android.com/training/best-background.html ).

En la documentación del desarrollador :

GoogleApiClient se utiliza con una variedad de métodos estáticos. Algunos de estos métodos requieren que GoogleApiClient esté conectado, algunos pondrán en cola las llamadas antes de que GoogleApiClient esté conectado; Consulte la documentación específica de la API para determinar si necesita estar conectado.

Si no necesita enviar los datos inmediatamente, GoogleApiClient va a poner en cola los datos que se enviarán para usted y simplemente enviarlos en la actividad principal.

  • Cómo crear un emulador API-15 con Google Play Services (línea de comandos)
  • Problemas para implementar el nuevo cliente de GCM para Android
  • Listener para Leaderboard en los servicios de juegos de Google
  • AdMob con Google Play Services: prueba de anuncios: no hay relleno en el servidor de anuncios
  • Libgdx - IllegalStateException en una ubicación desconocida
  • Configuración de Google Play Games Services
  • Proguard causa un accidente en los servicios de Google Play 'ActivityRecognitionResult getMostProbableActivity
  • Los fósforos de turnbased desaparecen después de cargar por primera vez
  • No hay ninguna aplicación vinculada asociada con este ID de cliente
  • ¿Dónde encuentro el texto de atribución de Google Play Services?
  • ¿Cómo comprobar la versión de servicios de Google Play?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.