2017-07-13 3 views
0

私はいくつかの奇妙な問題に直面しています。 メソッドののインスタンスをMainActivityクラスに作成しています。私はGoogleアカウントの完全な情報にログインしています。作成したアクティビティと異なるアクティビティからGoogleApiClientインスタンスを接続できません

MainActivity.java

GoogleApiClient google_api_client; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

      google_api_client = new GoogleApiClient.Builder(getApplicationContext()) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .addApi(Plus.API, Plus.PlusOptions.builder().build()) 
       .addScope(Plus.SCOPE_PLUS_LOGIN) 
       .addScope(Plus.SCOPE_PLUS_PROFILE) 
       .build(); 
} 

    @Override 
    protected void onPause() { 
      MemoryStore.setGoogle_api_client(google_api_client); 
      Log.d("", "isConnected=" + google_api_client.isConnected()); // Prints true. 
    } 

私は、共通のクラスで、すなわちMemoryStore.javaをこのインスタンスを格納しています。

private static GoogleApiClient google_api_client; 

    public static GoogleApiClient getGoogle_api_client() { 
     return google_api_client; 
    } 

    public static void setGoogle_api_client(GoogleApiClient client) { 
     google_api_client = client; 
    } 

MemoryStore.javaは今別のアクティビティクラスに、私はボタンをクリックしたときに、このGoogleApiClientを切断しています、FriendsListActivity.java言います。その前に、そのインスタンスが接続されているかどうか、別のクラスのメソッドでチェックしています。私の驚きに

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     Log.d("", "isConnected=" + MemoryStore.getGoogle_api_client().isConnected()); // Prints true. 
    } 

    @Override 
    public void onClick(View v) { 
     Log.d("", "isConnected=" + MemoryStore.getGoogle_api_client().isConnected()); // Prints false. 
    } 

、それは常に言うgoogle_api_clientonClick()方法で切断され、常にgoogle_api_clientonCreate()またはonResume()方法に接続されていると言っています。

がでも私は切断する前に確認するAlertDialogでチェックし、同様に私は、インスタンスOKボタンのクリックでを切断が取得しています。

uiスレッドに問題はありますか?私はメインスレッド以外のインスタンスにアクセスしているようですか?


ご迷惑をおかけして申し訳ございません。

答えて

0

GoogleApiClientを切断した後、MemoryStoreクラスのオブジェクトをnullに設定します。

MemoryStore.setGoogle_api_client(null);

あなたはそれが再び、再びあなたはMainActivity

+0

でそれを行っている。しかし、私はをisConnected()はonClickの中FriendsListActivityで偽=()メソッドを取得し、そうではないわけではない方法でそれを設定したいときそれを切断することができます。わからない、切断されたときから。 – pratik03

+0

あなたはonCreate()でisConnected()をtrueとして取得しますが、onClick()では取得しないと言っていますか? –

+0

はい。 U正しいことを読んでください。私はそれがどう起こったか、わからない。私はどこからでも切断していません。 – pratik03

関連する問題