我在android中使用facebook sdk 3.5来创建自定义登录按钮后点击将获取facebook详细信息然后发送到服务器然后转到下一个意图(屏幕)。我已创建下面的代码并使用它但是进度对话框需要很长时间来访问Facebook上的onCompletemethod()也有时候它的timedOut.I已发布下面的代码请告诉我是否有比下面更好的登录方式,如果我可以减少登录Facebook所需的时间。我非常感谢你的帮助。谢谢你。
public class MainActivity extends Activity {
private ProgressDialog progressDialog;
static String email;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Wait...");
Button bt=(Button)findViewById(R.id.button1);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
runOnUiThread(new Runnable() {
@Override
public void run() {
progressDialog.show();
}
});
Session.openActiveSession(MainActivity.this, true, 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() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
progressDialog.dismiss();
email= (String) response.getGraphObject().getProperty("email");
Log.d("email", email);
new FetchTask().execute();
}
}
}).executeAsync();
}
}
});
}});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(Session.getActiveSession() != null)
{
Session.getActiveSession().onActivityResult(MainActivity.this, requestCode, resultCode, data);
}
}
答案 0 :(得分:0)
我有同样的问题。也许你找到了解决方案。 我在Nexus 4上遇到了问题,但没有在三星S3上得到它
对不起,我没有留下任何评论的声誉。