Acompanhar tokens de acesso e perfis no Login no Facebook para Android

Se você quiser que seu aplicativo se mantenha atualizado com o token de acesso e perfil atuais, poderá implementar as classes AccessTokenTracker e ProfileTracker.

Essas classes chamarão seu código ao ocorrer alterações no token de acesso ou no perfil. Internamente, eles usam receptores; portanto, você precisa chamar stopTracking() em uma atividade ou chamar o método onDestroy() de um fragmento.

Acompanhar tokens de acesso

Por exemplo, para usar o AccessTokenTracker em vez de uma chamada de retorno de login:

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

Acompanhar o perfil atual

Você pode usar o ProfileTracker de maneira semelhante para acompanhar alterações no perfil atual:

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