這裏發生的事情:程序在Facebook Graph API響應之前完成 - 我該如何讓它等待?
- 我的程序更新時,有一個狀態變化
- 的狀態變化的處理程序需要繼續之前知道用戶的ID;它調用findUserID()
- findUserID()從Facebook Graph API請求用戶的標識
- 狀態更改的處理程序在該值之前進行,如果找到並且因此行爲不正確。
- 幾秒鐘後,跟蹤(Log.d)顯示該用戶的ID已經發現
如果我暫停,然後繼續我的程序中,用戶ID被發現,然後我的程序正確的行爲;但是,這不應該被完成。在繼續操作之前,如何讓我的程序等待Facebook Graph API的響應?
protected void findUserID(Session session)
{
//userId = null; // Set initial
// If session is open
if (session != null && session.isOpened()) {
// Make an API call to get user data
// and define a new callback to handle the response
Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
Session session = Session.getActiveSession();
// If current session matches active session
if (session == Session.getActiveSession()) {
if (user != null) {
userId = user.getId(); // set userId
Log.d("internal", "UserId issss: " + userId);
} // end if user != null
} // end if session == Session.getActiveSession()
} // end onCompleted
}); // end request
Request.executeBatchAsync(request); // Request does not execute unless you call this.
Log.d("findUserID", "The value after request: " + userId);
} // end session open check
}
任何/所有的幫助表示讚賞。
*嘆息*不幸的是你說的話很有意義。我希望能夠更快地修復,但是..乞丐不能是選擇器。 –