1

我有两个活动,即 MainActivity 和 Menu。我使用我的主要活动成功登录到 facebook,并在那里设置了必要的登录流程。但是我希望能够在菜单活动中使用会话和状态。因此,为此,我使用了 Intent 和 putExtra 将会话发送到菜单活动,但是我不确定如何在那里使用该会话。

这是我的 MainActivity(这是我有登录逻辑并将会话发送到菜单的地方):

public class MainActivity extends Activity {

 ....some more login logic is here....

private void onSessionStateChange(Session session, SessionState state,
        Exception exception) {
    if (session != currentSession) {
        return;
    }

    if ((session != null && session.isOpened())) {
        finish();

        Intent menu = new Intent(getApplicationContext(), Menu.class);
        menu.putExtra("facebookSession", session);
        startActivity(menu);

    } else if (state.isClosed()) {


    }
}
}

这是菜单活动(我收到通过 Intent 发送的会话):

public class Menu extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);
    Bundle extras = getIntent().getExtras();
    if (extras != null) {           
        Session.setActiveSession((Session) extras.getSerializable("facebookSession"));
    }

}

}

现在,我如何使用这个传递的会话来说“注销用户”我想在单击注销按钮时尝试在菜单活动中执行此操作:

logout.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // Log user out by using session i got from MainActivity
            if (currentSession != null) {
                currentSession.closeAndClearTokenInformation();
            }
        }
    });

谢谢您的帮助。

4

1 回答 1

2

好的,我试着在这里回答你,因为你已经在你的 MenuActivity 中设置了活动会话,在你的 MenuActivity 中,你可以这样调用注销

logout.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        Session.getActiveSession().closeAndClearTokenInformation();
    }
});
于 2013-09-08T10:48:47.897 回答