Monitoraggio dei token d'accesso e dei profili in Facebook Login per Android

Se desideri che l'app sia sempre aggiornata sui token d'accesso e il profilo correnti, implementa le classi AccessTokenTracker e ProfileTracker.

Quando il token d'accesso o il profilo subisce modifiche, queste classi chiamano il codice. Dal momento che usano riceventi interni, devi chiamare stopTracking() per un'attività o il metodo onDestroy() di un frammento.

Monitoraggio dei token d'accesso

Ad esempio, per usare AccessTokenTracker invece di una callback per l'accesso:

@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();
}

Monitoraggio del profilo corrente

Puoi usare ProfileTracker in modo simile per monitorare le modifiche al profilo corrente:

@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();
}