我退出后为什么我的facebook会话仍然有效?

时间:2012-11-29 23:24:36

标签: android facebook facebook-android-sdk

我的退出代码:

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注销。 为什么?我该如何解决这个问题呢?我需要将按钮从“注销”更改为“登录”。 我该怎么办?

N.B:我正在使用facebook SDK

编辑

我想在AsyncFacebookRunner.java中的logout方法中的线程完成其工作之前,我正在尝试更改我的按钮。如果确实如此,我应该如何等待线程完成其工作,然后执行我的updateButtonImage()方法。

1 个答案:

答案 0 :(得分:0)

为了摆脱它,我使用sessionlogin。有了它,它工作正常。