如果您希望自己的應用程式可以與目前的存取權杖和個人檔案保持同步,您可以實作 AccessTokenTracker
和 ProfileTracker
類別。
這些類別會在存取權杖或個人檔案發生變更時呼叫您的程式碼。 這些類別在內部使用接收器,因此您必須對 Activity 呼叫 stopTracking()
,或者呼叫片段的 onDestroy()
方法。
例如,若要使用 AccessTokenTracker
而不是使用登入回呼:
@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(); }
您可以使用 ProfileTracker
,以類似的方式追蹤目前個人檔案中的變更:
@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(); }