사용자가 내 안드로이드 응용 프로그램에 페이스 북으로 로그인되어 있는지 확인하는 방법을 명확히하는 데 어려움을 겪고 있습니다.안드로이드, 사용자가 페이스 북에 로그인되어 있는지 확인하십시오
당신은 사람이 이미 AccessToken.getCurrentAccessToken()와 Profile.getCurrentProfile() 확인하여 로그인하면 볼 수 있습니다
공식 페이스 북 문서는 말한다.
그러나 AccessToken.getCurrentAccessToken()
은 SDK 초기화가 완료된 경우에만 사용할 수 있습니다. 지금까지 내가 이해, 이러한 접근 방식은 모든 시간을 작동하지 않을 수 있습니다 :
FacebookSdk.sdkInitialize(this.getApplicationContext());
if (AccessToken.getCurrentAccessToken() != null) {
//good
}
, 때문에 그것은이 질문에 설명 된대로 :
How can i find my current login status - facebook API android
그것은 말한다 AccessTokenTracker()
콜백 onCurrentAccessTokenChanged()
수 있음 따라서 비동기로 해고 당하면이 경우에 null
값을 getCurrentAccessToken()
으로 얻을 수 있습니다 (단순히 경주가 풀릴 것입니다).
그래서 바로 SDK 초기화 후 getCurrentAccessToken
의 null
값을 갖는의 기회가 있으며, 경우, 지금까지의 내가 아는 한, onCurrentAccessTokenChanged()
이 ... 사용자가 모든 로그인, 그렇게하지 않을 경우 실행하지 마십시오 방법을 확인하는 경우 그게 뭐야? 이것은 나에게 교착 상태처럼 보입니다. 내가 뭔가를 놓친거야?
내가 한 일 : 일반적으로 로그인을 구현 한 공식 FB 매뉴얼을 보았습니다.하지만이 문제로 인해 두통이 생깁니다. 또한 다른 SO 질문을 확인하십시오. 그러나 모든 솔루션은 내가 원하는 것을 설명하지 않습니다.
public boolean isLoggedIn() {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
return accessToken != null;
}
또는이 확인 :
는 또한, 내가 응용 프로그램 시작에이를 확인하려면, 그래서 onResume
처럼 그런 일이없는, onStart
등
음, 이러한 솔루션은 이미 내 게시물에 제공되었지만 이러한 작업의 비동기 특성과 관련된 질문에 대한 대답이 아닙니다. 세부 사항을 제공해 주시겠습니까? 왜 이것이 항상 제공되는 정보를 기반으로 작동합니까? – rofl
은 RequestAsyncTask 클래스를 사용합니다. – huk