我的退出代码:
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()
方法。
答案 0 :(得分:0)
为了摆脱它,我使用sessionlogin
。有了它,它工作正常。