Theo dõi mã truy cập và trang cá nhân trong Đăng nhập Facebook dành cho Android

Nếu muốn ứng dụng cập nhật mã truy cập và trang cá nhân hiện tại, bạn có thể triển khai lớp AccessTokenTrackerProfileTracker.

Những lớp này gọi mã khi mã truy cập hoặc trang cá nhân thay đổi. Những lớp này sử dụng bộ thu nội bộ nên bạn cần gọi stopTracking() trên một hoạt động hoặc gọi phương thức onDestroy() của một phân đoạn.

Theo dõi mã truy cập

Ví dụ như để sử dụng AccessTokenTracker thay vì sử dụng hồi đáp đăng nhập:

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

Theo dõi trang cá nhân hiện tại

Bạn có thể sử dụng ProfileTracker theo cách tương tự để theo dõi các thay đổi trong trang cá nhân hiện tại:

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