4

我正在使用 facebook sdk 3.0 登录我的应用程序。登录工作正常。一旦我注销我的应用程序,它就不会发生。

我的注销代码:

Facebook mFb=new Facebook("xxxxxxxx");
mFb.logout(this);

给我一些想法来做到这一点。

4

5 回答 5

5

我一直面临同样的问题最后我找到了这个修复

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);

}

我不知道里面发生了什么,但我想如果找不到它,我们将不得不创建新会话并清除它的令牌信息。它对我有用。希望它会有所帮助。

于 2013-08-26T12:47:54.250 回答
2

试试这个:

if( mFb.isSessionValid() ) {                                  
    mFb.logout(getApplicationContext());
    SessionStore.clear(getApplicationContext());
}
于 2013-02-04T12:58:17.620 回答
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);
                    }

                }
            }
        });                 
    }
}});
于 2013-02-05T08:16:41.923 回答
1

对于 Facebook 使用:

LoginManager.getInstance().logOut();

注销。

于 2015-07-30T16:11:59.217 回答
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();
    }
于 2013-02-04T13:13:47.800 回答