我正在使用facebook sdk 3.0登录我的应用程序。登录工作正常。一旦我注销我的应用程序,它就不会发生。
我的退出代码:
Facebook mFb=new Facebook("xxxxxxxx");
mFb.logout(this);
给我一些想法。
答案 0 :(得分:6)
我一直面临同样的问题,最后我发现了这个问题
public void logout()
{
Session session = Session.getActiveSession();
if (session != null) {
session.closeAndClearTokenInformation();
}
else
{
Session session2 = Session.openActiveSession((Activity)context, false, null);
if(session2 != null)
session2.closeAndClearTokenInformation();
}
Session.setActiveSession(null);
}
我不知道里面会发生什么,但我想我们必须创建新的会话,如果找不到它并清除它的令牌信息。 它对我有用。希望它会有所帮助。
答案 1 :(得分:2)
试试这个:
if( mFb.isSessionValid() ) {
mFb.logout(getApplicationContext());
SessionStore.clear(getApplicationContext());
}
答案 2 :(得分:2)
并且:工作正常
Session.openActiveSession(this, true, new Session.StatusCallback() {
@Override
public void call(final Session session, final SessionState state, Exception exception){
// TODO Auto-generated method stub
if(session.isOpened()){
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
// TODO Auto-generated method stub
if(user!=null){
try{
session.close();
session.closeAndClearTokenInformation();
//state.isClosed();
}catch (Exception e) {
Log.e(tag, "getUserIdMethod--->"+e);
}
}
}
});
}
}});
答案 3 :(得分:1)
对于Facebook使用:
LoginManager.getInstance().logOut();
退出。
答案 4 :(得分:0)
检查此链接,其答案就在这里 how to logout using facebook api in android
答案 5 :(得分:0)
您是否尝试在单独的线程上调用它:
public void logout()
{
new Thread(){
public void run() {
try {
mFacebook.logout(your_current_class_name.this);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}