Facebook に 2 回目にログインしようとすると問題が発生します。ユーザーが資格情報を初めて入力すると、バックグラウンドでいくつかの写真を Facebook アカウントにアップロードし始めます。
ただし、その期間中に別のユーザーが来て、Facebook ボタンをもう一度押すことができます。前のリクエストがまだ処理されていることを期待しています。ただし、最初の処理 (つまり、最初のユーザーの写真のアップロード) がまだ完了していない間は、2 番目のユーザーをログインさせることができません。
現在のバージョンで何が起こっているかというと、2 番目のユーザーが私の Facebook ボタンを押すと、Facebook API は前のユーザーを参照していると想定します (まだバックグラウンドで実行されているため)。ただし、古いユーザーがまだバックグラウンドで実行されている間に、この新しいユーザーで別のセクションを開始したいと考えています。どうすればそれを達成できますか?
これが私の簡単なコードです(ユーザーが画面上のFacebookボタンを押すと、次のメソッドが呼び出されます):
private void uploadPictures(View target) {
mFacebook = new Facebook(getString(R.string.facebookappid));
mAsyncRunner = new AsyncFacebookRunner(mFacebook);
mFacebook.authorize(this, Settings.FACEBOOK_PERMISSIONS, Facebook.FORCE_DIALOG_AUTH, new LoginDialogListener());
}
PS: 複数の Facebook および AsyncFacebookRunner オブジェクトのインスタンス化も試みましたが、うまくいきませんでした (同じ動作が得られます。つまり、オブジェクトが異なっていても、ログイン画面が 2 回目に表示されないだけです (前のリクエストがまだ処理中の場合))!!!
よろしくお願いします!