这里发生的事情:程序在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
}
任何/所有的帮助表示赞赏。
*叹息*不幸的是你说的话很有意义。我希望能够更快地修复,但是..乞丐不能是选择器。 –