2

私のログアウトコード:

if(fb.isSessionValid()){    
            masyncfb.logout(this, new RequestListener() {
                  @Override
                  public void onComplete(String response, Object state) {
                      Log.d(TAG, "Logging you out: "+response);
                  }

                  @Override
                  public void onIOException(IOException e, Object state) {}

                  @Override
                  public void onFileNotFoundException(FileNotFoundException e,
                        Object state) {}

                  @Override
                  public void onMalformedURLException(MalformedURLException e,
                        Object state) {}

                  @Override
                  public void onFacebookError(FacebookError e, Object state) {}
                });
                      updateButtonImage();                  

        }else{

私のupdateButtonImage()方法は次のとおりです。

private void updateButtonImage() {
        // TODO Auto-generated method stub
        if(fb.isSessionValid()){
            Toast.makeText(MainActivity.this, "logged in", Toast.LENGTH_LONG).show();
            button.setImageResource(R.drawable.logout);
        }else{
            button.setImageResource(R.drawable.login);
            Toast.makeText(MainActivity.this, "logged out", Toast.LENGTH_LONG).show();
        }
    }

updateButtonImage()このメソッドは、ログイン後にボタンの画像を「ログイン」から「ログアウト」に変更しますが、ログアウト後にボタンを「ログアウト」から「ログイン」に変更しません。(logcatから)ログアウトボタンをクリックした後、Facebookから正常にログアウトしたと確信しています。つまり、Facebookから正常にログアウトしたにもかかわらず、セッションはまだ有効です。なぜ?どうすれば問題を解決できますか?ボタンを「ログアウト」から「ログイン」に変更する必要があります。私は何をすべきか?

注意:FacebookSDKを使用しています

編集

AsyncFacebookRunner.javaのログアウトメソッドのスレッドがジョブを終了する前にボタンを変更しようとしていると思います。それが本当なら、スレッドがその作業を完了するのをどのように待ってから、updateButtonImage()メソッドを実行する必要がありますか。

4

1 に答える 1

0

それを取り除くために、私はを使用しますsessionlogin。それで、それはうまく働いています。

于 2012-11-30T18:59:35.310 に答える