因此,单击按钮,将弹出Facebook登录对话框。用户登录后,我想再转到另一个活动。问题是,当我完成Facebook工作并开始新活动时,该活动在登录过程完成之前就开始了。关于如何才能仅在登录过程完成后才能启动新活动的任何想法?谢谢。
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Session s = new Session(MainActivity.this);
Session.setActiveSession(s);
Session.OpenRequest request = new Session.OpenRequest(
MainActivity.this);
request.setPermissions(Arrays.asList("public_profile", "email"));
request.setCallback(new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state,
Exception exception) {
if (session.isOpened()) {
Request.newMeRequest(session,
new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user,
Response response) {
if (user != null) {
userName = user.getName();
userEmail = (String) user
.getProperty("email");
userID = user.getId();
} else {
Toast.makeText(
getApplicationContext(),
"Error User Null",
Toast.LENGTH_SHORT)
.show(); }
}
}).executeAsync();
}
}
}); // end of call;
s.openForRead(request);
startActivity(new Intent(MainActivity.this, NextActivity.class));
}
});
最佳答案
移动电话
startActivity(new Intent(MainActivity.this, NextActivity.class));
在
onCompleted
块中的if (user != null)
中。此时,MeRequest
已完成,并且已成功返回用户。