2015-03-22 2 views
0

У меня есть этот метод и первый журнал печатает, а другие неOnCompleted на Request.GraphUserListCallback не получает казнен

Что я делаю неправильно?

То есть: Log.d («insideGetFriends», «in»); Получает печать, и я посмотрел в своем журнале,

Log.d ("facebookError", Integer.toString (graphUsers.size())); а оставшиеся строки не выполняются.

public ArrayList<ParseUser> getFriends(Session session) 
    { 
     Log.d("insideGetFriends","in"); 
     final ArrayList<ParseUser> users=new ArrayList<>(); 
     Request.newMyFriendsRequest(session,new Request.GraphUserListCallback() { 
      @Override 
      public void onCompleted(List<GraphUser> graphUsers, Response response) { 

       Log.d("facebookError",Integer.toString(graphUsers.size())); 

       for(GraphUser user:graphUsers) 
       { 
        String facebookId=user.getId(); 
        Log.d("facebookFriend",facebookId); 
        ParseQuery<ParseUser> query=ParseUser.getQuery(); 
        query.whereEqualTo("facebookID",facebookId); 
        query.findInBackground(new FindCallback<ParseUser>() { 
         @Override 
         public void done(List<ParseUser> parseUsers, ParseException e) { 
          users.add(parseUsers.get(0)); 
         } 

        }); 
       } 
      } 

     }); 
     return users; 
    } 

ответ

7

Похоже, вы не начинаете/не выполняете запрос.

Вам нужно сохранить результат Request.newMyFriendsRequest(...) в переменной, а затем позвонить по телефону .executeAsync(). Это объясняется здесь: https://developers.facebook.com/docs/android/graph#userdata

+0

Я понял это позже. Извините, но вам необходимо удалить этот вопрос. –

+2

Не беспокойтесь об этом. На самом деле, просто оставьте вопрос; таким образом, кто-то другой, кто может сделать то же самое, сможет найти это и понять, как быстрее решить проблему. – derabbink

Смежные вопросы