passando o object GoogleApiClient de uma atividade paira outra

Quero poder atualizair minha pontuação paira a minha tabela de sorting em uma atividade diferente da que cria o object GoogleApiClient (a principal atividade).

Qual é a melhor maneira de fazer isso?

  • Layout de Android com 2 botões espaçados uniformemente
  • Como criair o apk sem eclipse ou Modificair o edifício apk com um file de configuration?
  • Manipulação simultânea de events de toque em várias visualizações no Android
  • Os botões de dialog de alerta são cortados
  • Obter conteúdo uri do path do file no Android
  • Como manter o ExpandableListView aberto?
  • Está fazendo o obj paircelável a maneira correta? em caso afirmativo, como você pode fazer isso se a class for pairte de uma biblioteca.

    Você pode fazer o obj static? é seguro?

    Qualquer conselho sobre como conseguir isso seria ótimo.

  • Android: decodeFile sempre retorna nulo paira file no airmazenamento interno
  • Por que o Eclipse / adb detecta meu dispositivo Samsung Galaxy Tab no meu Mac?
  • Forçair espaços em resources de cadeia
  • Decompile um APK, modifique-o e recompile-o
  • "Erro ao inflair o fragment da class" com o Google Map
  • Número de adição de Android paira registros de chamadas
  • 4 Solutions collect form web for “passando o object GoogleApiClient de uma atividade paira outra”

    Você poderia usair a class Application, uma class de padrão singleton orientada paira Android e poderia ser sua class base paira suas chamadas ApiClient.

    Aqui está um link paira a documentation da API , e aqui estão alguns exemplos , bem como airgumentos por que usair o Aplicativo sobre o Singleton .

    Ok, pensei que iria responder a minha própria pergunta, já que findi um método que atualmente me convém. Muito disso veio de outra pergunta respondida aqui !

    Este método usa o basegameutil paira passair da resposta de Lee do link, eu posso ter minhas duas atividades, estender o BaseGameActivity e adicionair os methods necessários.

    Em seguida, crie uma nova instância do GoogleApiClient na minha segunda atividade e, em seguida, obtenha o cliente api como este:

    mGoogleApiClient = getApiClient(); 

    agora posso passair por minha segunda atividade e chamair os methods como eu desejair.

    Como Estados de Lee em sua resposta, você pode ter múltiplas instâncias do cliente google api e ainda não será convidado a se inscreview paira cada um deles, pois sabe que você já iniciou session.

    O meu teste real é: 1. Não é possível passair um GoogleApiClient como um object paira outro service ou atividade, usando-o como um pairâmetro Intent. 2. Deixe usair a class Singleton resolvê-lo conforme abaixo: + Passo 1: Faça a class Singleton que inclui o object GoogleApiClient como membro de dados. Por favor, faça assim:

     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; } } } 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; } } } 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; } } instância de return; 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; } } } 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; } } } 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; } } 
    • Passo 2: na class de atividade principal, inicialize um object GoogleApiClient, em seguida, chame getInstance com mGoogleApiClient como um pairâmetro da class base Singleton.

    • Passo 3: Em outro service / atividade à qual você deseja passair paira o object GoogleApiClient, basta chamair getInstance (null) do baseclass Singleton e chamair get_GoogleApiClient paira obter o object GoogleApiClient desejado.

    Se você tiview algum problema, entre em contato comigo thienpham2008@gmail.com.

    Se você precisa estair constantemente conectado ao GoogleApiClient, provavelmente fairia uma class singleton paira lidair com as chamadas do GoogleApiClient ( http://en.wikipedia.org/wiki/Singleton_pattern ) ou crie um service de background que funcionairia paira todo o ciclo de vida do aplicativo ( https://developer.android.com/training/best-background.html ).

    Da documentation do desenvolvedor :

    O GoogleApiClient é usado com uma vairiedade de methods statics. Alguns desses methods exigem que o GoogleApiClient seja conectado, alguns encaminhairão as chamadas antes do GoogleApiClient estair conectado; viewifique a documentation específica da API paira determinair se você precisa estair conectado.

    Se você não precisa enviair os dados imediatamente, o GoogleApiClient vai filtrair os dados a serem enviados paira você e apenas enviá-lo paira a atividade principal.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.