私はいくつかの奇妙な問題に直面しています。 メソッドののインスタンスを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_client
はonClick()
方法で切断され、常にgoogle_api_client
がonCreate()
またはonResume()
方法に接続されていると言っています。
がでも私は切断する前に確認するAlertDialogでチェックし、同様に私は、インスタンスがOK
ボタンのクリックでを切断が取得しています。
uiスレッドに問題はありますか?私はメインスレッド以外のインスタンスにアクセスしているようですか?
ご迷惑をおかけして申し訳ございません。
でそれを行っている。しかし、私はをisConnected()はonClickの中FriendsListActivityで偽=()メソッドを取得し、そうではないわけではない方法でそれを設定したいときそれを切断することができます。わからない、切断されたときから。 – pratik03
あなたはonCreate()でisConnected()をtrueとして取得しますが、onClick()では取得しないと言っていますか? –
はい。 U正しいことを読んでください。私はそれがどう起こったか、わからない。私はどこからでも切断していません。 – pratik03