Я не могу вывести любое значение из GraphRequest (). ExecuteAsync () - PullRequest
0 голосов
/ 23 мая 2018

Я использую график API Facebook для Android.Я не могу вывести любое значение из GraphRequest ([...]). ExecuteAsync ().Таким образом, возвращаемая строка всегда пуста

public String getPost(){
        new GraphRequest(
                AccessToken.getCurrentAccessToken(), "me?fields=friends,name", null, HttpMethod.GET,
                new GraphRequest.Callback() {
                    public void onCompleted(GraphResponse response) {

                        JSONObject object = response.getJSONObject();
                        try {
                            friends = object.getJSONObject("friends").getJSONObject("summary").getString("total_count");
                        } catch (JSONException e) {
                            e.printStackTrace();
                        };

                    }
                }
        ).executeAsync();

        return friends;
}

1 Ответ

0 голосов
/ 23 мая 2018

return friends вернет значение по умолчанию friends.вы не получаете поведение executeAsync() здесь.executeAsync() будет работать асинхронно, и метод вернется сразу после планирования задачи executeAsync().

Данные, т.е. friends, изменяются внутри метода обратного вызова, поэтому вы должны вернуть их из onCompleted().

Для возврата данных вы можете использовать интерфейс обратного вызова. См. Как определить обратный вызов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...