Android Facebook登录-选项太多

Android Facebook登录-选项太多,android,facebook,Android,Facebook,我想创建一个Android应用程序,使用Facebook对用户进行身份验证,然后将访问令牌传递给我们的web应用程序服务器 只有在用户通过身份验证后,应用程序才会工作。因此,当它开始时,我需要打开一个Facebook会话,然后使用访问令牌并联系我们自己的服务器以获取更多信息。同样的Facebook会话将在各种应用程序活动中使用 我无法决定如何处理Facebook会话。我是否在第一个活动中设置了一个登录按钮?当会话状态更改时,我在其他活动中应该做什么?我不想在每个活动中都添加Facebook登录

我想创建一个Android应用程序,使用Facebook对用户进行身份验证,然后将访问令牌传递给我们的web应用程序服务器

只有在用户通过身份验证后,应用程序才会工作。因此,当它开始时,我需要打开一个Facebook会话,然后使用访问令牌并联系我们自己的服务器以获取更多信息。同样的Facebook会话将在各种应用程序活动中使用

我无法决定如何处理Facebook会话。我是否在第一个活动中设置了一个登录按钮?当会话状态更改时,我在其他活动中应该做什么?我不想在每个活动中都添加Facebook登录

或者,我可以使用我自己的按钮,如SDK的登录示例所示。但是,当我在另一个活动中,会话关闭时,我会遇到同样的管理问题

或者我可以把所有东西放在同一个活动中,使用不同的片段

最佳实践方式是什么


注意:关于这个问题的大多数SO问题都与旧的SDK有关(使用现在已弃用的
Facebook
类)。

您可以像这样获得Facebook会话

Session session = Session.getActiveSession();
    if (session == null) {
        if (savedInstanceState != null) {
            session = Session.restoreSession(getActivity(), null, statusCallback, savedInstanceState);
        }
        if (session == null) {
            session = new Session(getActivity());
        }
        Session.setActiveSession(session);
        if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
            session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
        }
    }

最简单的方法肯定是使用单个活动来处理所有会话状态更改,并使用它来驱动UI更改。Android正朝着碎片模式发展,所以我认为这是你最好的选择


或者,如果需要使用不同的活动,则始终可以使用引用当前活动的common Session.StatusCallback实现。然后,如果状态更改导致UI更改,您可以创建一个启动新活动的意图。

我想我可以只使用一个活动并洗牌片段,而不是切换活动。这真的是Android应用程序的发展方向吗?