2014-05-13 13 views
1

如果我使用異步調用應用程序功能,但不是我想要的。 如果我使用同步調用,則應用程序在啓動時不起作用並崩潰。 (無法恢復活動:NetworkOnMainThreadException) 爲什麼?Facebook ExecuteAndWait

private void makeFBRequest(final Session session) { 
      Request request = Request.newMeRequest(session, new Request.GraphUserCallback() { 
      @Override 
      public void onCompleted(GraphUser user, Response response) { 
       if (session == Session.getActiveSession()) { 
        if (user != null) { 
         Profile.name = user.getFirstName(); 
         Profile.surname = user.getLastName(); 
         Profile.email = (String) user.asMap().get("email"); 
       } 
      } 
     });  
     //request.executeAsync(); 
      request.executeAndWait(); 
    } 
+0

因爲你不能從UI(主)線程進行網絡調用。 –

回答

1

我解決了在調用之前引入這些行的問題。

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
StrictMode.setThreadPolicy(policy); 
+0

它的作品,但你能解釋爲什麼嗎? Thankyou – tana

+0

這是壞的想法在主線程中運行與服務器的連接。我會粉碎開發者的手。 – ruslik

相關問題