如何使用facebook登录在Android中实现注销功能

时间:2014-01-22 11:26:54

标签: android facebook

我在我的Android应用程序中使用facebook登录。我正在使用访问令牌和访问过期此应用程序。但是我应该使用什么代码注销这个应用程序。我想添加一个注销按钮,如果我点击它,注销功能应该有效。我的登录按钮代码是:

btnfblogin = (Button) findViewById(R.id.Bfb);
btnfblogin.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("deprecation")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (fb.isSessionValid()) {
 // button logout
 try {
  fb.logout(getApplicationContext());
  updateButtonImage();
 } catch (MalformedURLException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
} else {
 // button Login
 fb.authorize(Login.this, new String[] { "email" },
   new DialogListener() {

    @Override
    public void onFacebookError(FacebookError e) {
     // TODO Auto-generated method stub
     Toast.makeText(Login.this, "fbError",
       Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onError(DialogError e) {
     // TODO Auto-generated method stub
     Toast.makeText(Login.this, "OnError",
       Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onComplete(Bundle values) {
     // TODO Auto-generated method stub
     Editor editor = sp.edit();
     editor.putString("access_token",
       fb.getAccessToken());
     editor.putLong("access_expires",
       fb.getAccessExpires());
     editor.commit();
     updateButtonImage();
    }

    @Override
    public void onCancel() {
     // TODO Auto-generated method stub
     Toast.makeText(Login.this, "Oncancel",
       Toast.LENGTH_SHORT).show();
    }
   });

 }
}
});

我想在不同的活动上使用注销功能。我正在使用第一个登录活动,并希望从第四个活动退出。

3 个答案:

答案 0 :(得分:1)

只需使用此功能即可注销facebook sdk 3.x

    if (fb_session != null && fb_session.isOpened()) {                            
         fb_session.closeAndClearTokenInformation();                 
     }

在Old sdk中试试这个

   if( mFb.isSessionValid() ) {                                  
       mFb.logout(getApplicationContext());
       SessionStore.clear(getApplicationContext());
   }

答案 1 :(得分:0)

尝试以下代码..

使用此代码,您需要从facebook注销。这将清除所有Facebook信息。然后将控件重定向到主要活动(或)其他一些。

 private void onClickLogout() {
    Session session = Session.getActiveSession();
    if (!session.isClosed()) {
        session.closeAndClearTokenInformation();
    }
}

答案 2 :(得分:0)

关于特定按钮点击事件,只需输入以下行

Session session = Session.getActiveSession();
session.closeAndClearTokenInformation();
Intent intent = new Intent(CurrentActivity.this, MainActivity.class);
startActivity(intent);

这将从facebook退出并返回到您的主要活动或您想要的位置。