2014-03-31 57 views
0

当我打开会话并获取Facebook数据时,我的活动持有片段突然弹出。 它看起来像这样:在android片段中使用facebook sdk

For the time that facebook data is downloading(2 sec) i am seeing this in my fragment.

我得到的数据,一切正常,但对于这2秒Facebook的数据下载所有我看到的是我的活动。

我有我的活动:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
     Session.getActiveSession().onActivityResult(getActivity(), requestCode, resultCode, data); 


} 

在我的片段我打开的会话是这样的:

s.openActiveSession(mActivity, false, mCallback); 

回调:

private Session.StatusCallback mCallback = new Session.StatusCallback() { 

    @SuppressWarnings("deprecation") 
    @Override 
    public void call(Session session, SessionState state, 
      Exception exception) { 

      if (session.isOpened()) {        
       Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { 

       @Override 
       public void onCompleted(GraphUser user, 
         com.facebook.Response response) { 

        try { 

         editEmail.setText((String) user.getProperty("email").toString()); 
        }catch(Exception e){ 

         Toast.makeText(mActivity,"We couldn't retrieve your email because you didn't confirm your email!",Toast.LENGTH_LONG).show(); 
        } 

        editName.setText(user.getFirstName()); 
        editSurname.setText(user.getLastName()); 

              Session.getActiveSession().closeAndClearTokenInformation(); 
        Session.setActiveSession(null); 


       } 
       }); 
      } 

     } 

任何想法,将不胜感激!

回答

0

主线程中活动过多。改为使用异步任务:

Request.newMeRequest(session, new Request 
     .GraphUserCallback() { ... }).executeAsync();