我的注销代码:
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 注销。为什么?我该如何解决这个问题?我只需要将按钮从“注销”更改为“登录”。我应该怎么办?
注意:我正在使用 facebook SDK
已编辑
我想我正在尝试在 AsyncFacebookRunner.java 中的注销方法中的线程完成其工作之前更改我的按钮。如果是真的那么我应该如何等待线程完成它的工作然后执行我的updateButtonImage()
方法。