12

我張貼在這裏,因爲我有一個問題。 我正在研究一個新的android應用程序,並且我想知道當用戶斷開連接時(facebook註銷按鈕)我該如何檢測,因爲此時我想刷新我的用戶界面。如何使用Facebook Android API v4檢測註銷事件?

我已經看過官方文檔,但是我什麼都沒發現。

回答

8
You can try this also 
if(AccessToken.getCurrentAccessToken()!=null) 
{ 
    Log.v("User is login","YES"); 

} 
else 
{ 
     Log.v("User is not login","OK"); 
     LoginManager.getInstance().logInWithReadPermissions(WelcomeActivity1.this, (Arrays.asList("public_profile", "user_friends","user_birthday","user_about_me","email"))); 
} 
+0

謝謝@大家,抱歉,我上個月在亞馬遜旅行。 – outstore

+1

由於您必須使用此代碼進行輪詢,因此這並不是真正基於事件的問題部分。對於註銷/登錄回調,請使用@NicolásArias的答案。 –

26

您可以設置在onCreate()方法的監聽你的活動

AccessTokenTracker accessTokenTracker = new AccessTokenTracker() { 
     @Override 
     protected void onCurrentAccessTokenChanged(
       AccessToken oldAccessToken, 
       AccessToken currentAccessToken) { 

      if (currentAccessToken == null){ 
       //User logged out 
      } 
     } 
    }; 

您需要導入com.facebook.AccessTokencom.facebook.AccessTokenTracker

當你創建AccessTokenTracker它隱含開始跟蹤實例。對於停止跟蹤,您應該致電AccessTokenTracker.stopTracking()例如在onDestroy()在不需要/不想要的情況下不再接收事件,特別是不泄漏內存!

您可以得到任何時間,如果用戶在輸入/輸出記錄通過調用

AccessToken at = AccessToken.getCurrentAccessToken(); 

如果用戶沒有登錄,你會得到一個null值。

更多參考請在https://developers.facebook.com/docs/reference/android/current/class/AccessTokenTracker/

+1

其還文檔導入到調用'AccessTokenTracker.stopTracking()'例如在'onDestroy()'中停止接收事件,例如在已經被摧毀的活動中! –