Paginate api graph在android上的结果

时间:2018-03-07 20:17:46

标签: android facebook-graph-api pagination facebook-android-sdk

我从多个页面收到帖子,然后在我的应用中显示。我有一个MAinActivity,我在那里进行API调用:

GraphRequest request = new GraphRequest(
            AccessToken.getCurrentAccessToken(), "/", null, HttpMethod.GET,
            new GraphRequest.Callback() {
                public void onCompleted(GraphResponse response) {
                    Intent feed = new Intent(MainActivity.this, Feed.class);
                    feed.putExtra("response", response.getJSONObject().toString());
                    startActivity(feed);
                }
            }
    );
    Bundle parameters = new Bundle();
    parameters.putString("ids", sources);
    parameters.putString("fields", "posts{id,message,picture,object_id,properties,source,created_time},picture.width(150)");
    parameters.putString("locale", "es_ES");
    request.setParameters(parameters);
    request.executeAsync();

sources是一个连接所有ID的字符串(" id1,id2,id3 ...")

当我有数据时,我将其传递给我的Feed活动,我处理它:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_feed);
    ListView lv = findViewById(R.id.list_feed);
    PostAdapter adaptador;
    Bundle inBundle = getIntent().getExtras();
    ArrayList<Post> arrayPosts = new ArrayList<>();
    String imgProfile;


    String JSONstring = inBundle.getString("response");
    try {
        JSONObject JSONfeed = new JSONObject(JSONstring);

        for (int index = 0; index < JSONfeed.names().length(); index++) {
            JSONObject pagina = JSONfeed.getJSONObject(JSONfeed.names().getString(index));
            JSONObject postsObject = pagina.getJSONObject("posts");
            JSONObject pictureObject = pagina.getJSONObject("picture");

           //{handle data and fields}

        }
        adaptador = new PostAdapter(this, arrayPosts);
        lv.setAdapter(adaptador);


    } catch (JSONException e) {
        e.printStackTrace();
    }

事情是这样工作正常,但是当我有大量数据(现在我有25个来源)时,应用程序崩溃没有任何错误或在调用的时刻记录。我非常确定崩溃是针对大数据的。当我删除某些来源或将limit(10)置于我的通话中时,它可以正常工作。

我需要知道如何对此进行分页,我不知道我是否以奇怪的方式完成了我的代码,但我发现的示例与我的不同。

0 个答案:

没有答案