Android Facebook SDK-重新启动后如何保持登录状态

Android Facebook SDK-重新启动后如何保持登录状态,android,facebook,login,Android,Facebook,Login,我使用的是facebok SDK和引导接收器,当引导序列完成时会触发: public class BootReceiver extends BroadcastReceiver { 我假定用户在以下情况下登录: public boolean isLoggedIn() { return AccessToken.getCurrentAccessToken() != null; } 但是,这始终返回为false 如何恢复用户的会话并在重新启动后让他们登录?这需要在引导接收器内完成,以检查用户

我使用的是facebok SDK和引导接收器,当引导序列完成时会触发:

public class BootReceiver extends BroadcastReceiver {
我假定用户在以下情况下登录:

public boolean isLoggedIn() {
    return AccessToken.getCurrentAccessToken() != null;
}
但是,这始终返回为false

如何恢复用户的会话并在重新启动后让他们登录?这需要在引导接收器内完成,以检查用户以前是否登录,并提供对以下内容的访问:

Profile.getCurrentProfile()

在broadcastReceiver内部执行登录之前,您可以尝试注销。这将确保用户已登录

    LoginManager loginManager = LoginManager.getInstance();
    loginManager.logOut();
    loginManager.logInWithReadPermissions(...);

    loginManager.registerCallback(...);
我知道了

如果我设置一个异步调用来刷新访问令牌,然后检查用户是否已登录,那么它似乎可以工作:

@Override
public void onReceive(Context context, Intent intent) {
    if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
        AccessToken.refreshCurrentAccessTokenAsync(new AccessToken.AccessTokenRefreshCallback() {
            @Override
            public void OnTokenRefreshed(AccessToken accessToken) {
                System.out.println("Refresh succeed");
                AccessToken.setCurrentAccessToken(accessToken);
                if (isLoggedIn()) {
                    System.out.println("User is logged in");
                    doCoolStuffHere();
                } else {
                    System.out.println("User is not logged in");
                }
            }

            @Override
            public void OnTokenRefreshFailed(FacebookException exception) {
                System.out.println("Refresh failed");
            }
        });
    }
}

logInWithReadPermissions需要活动或片段?是的,您是对的,此方法需要片段或活动