Seguimiento de identificadores de acceso y perfiles en el inicio de sesión con Facebook para Android

Si quieres que tu aplicación realice un seguimiento del identificador de acceso y el perfil actuales, puedes implementar las clases AccessTokenTracker y ProfileTracker.

Estas clases llaman a tu código cuando se produce un cambio en el identificador de acceso o el perfil. Internamente, utilizan receptores, por lo que debe llamarse al parámetro stopTracking() en una actividad o al método onDestroy() de un fragmento.

Seguimiento de identificadores de acceso

En este ejemplo se utiliza la clase AccessTokenTracker en lugar de emplear una devolución de llamada de inicio de sesión:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    callbackManager = CallbackManager.Factory.create();

    accessTokenTracker = new AccessTokenTracker() {
        @Override
        protected void onCurrentAccessTokenChanged(
            AccessToken oldAccessToken,
            AccessToken currentAccessToken) {
                // Set the access token using 
                // currentAccessToken when it's loaded or set.
        }
    };
    // If the access token is available already assign it.
    accessToken = AccessToken.getCurrentAccessToken();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

@Override
public void onDestroy() {
    super.onDestroy();
    accessTokenTracker.stopTracking();
}

Seguimiento del perfil actual

Puedes utilizar la clase ProfileTracker de un modo similar para realizar un seguimiento de los cambios en el perfil actual:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    callbackManager = CallbackManager.Factory.create();

    profileTracker = new ProfileTracker() {
        @Override
        protected void onCurrentProfileChanged(
                Profile oldProfile,
                Profile currentProfile) {
            // App code
        }
    };
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

@Override
public void onDestroy() {
    super.onDestroy();
    profileTracker.stopTracking();
}