Android集成Facebook - 以变化的顺序获取FQL响应

时间:2013-05-14 05:28:54

标签: android facebook-fql

我正在开发一个包含facebook集成的Android应用程序。如果我执行多个fql查询,我将按更改顺序获取响应。

我使用以下代码:

public static ArrayList<String> photoAlbumIdArr = null;

@Override
public void onCreate(Bundle savedInstanceState) {
     setContentView(R.layout.main);
     photoAlbumIdArr = new ArrayList<String>();
     photoAlbumIdArr.add("111114545_25133454545");
     photoAlbumIdArr.add("111114590_25133434768");
     photoAlbumIdArr.add("111114232_2513345487");
     photoAlbumIdArr.add("111114512_25133454456");
     startProgress();
}
public void startProgress() {
    // Do something long
    PhotoGalleryActivity.this.runOnUiThread(new Runnable()  {
        @Override
        public void run() {

            String fqlQuery = "";

            for(int k=0;k<photoAlbumIdArr.size();k++)
            {
                fqlQuery = "SELECT pid, src FROM photo WHERE aid = '"+photoAlbumIdArr.get(k)+"'";
                Bundle params = new Bundle();
                params.putString("q", fqlQuery);

                session = Session.getActiveSession();
                Request request = new Request(session, "/fql", params,
                        HttpMethod.GET, new Request.Callback() {
                            public void onCompleted(Response response) {
                                String jsonResponse = response.toString();
                                Log.i(LOG_TAG, jsonResponse);
                            }
                        });
                Request.executeBatchAsync(request);
            }
        }
    });
}

这里在for循环完成后调用回调响应。在那我得到无序响应(即)获得第一张专辑照片作为最后或中间响应同样。可能是什么问题。为什么我得到无序的回应。

1 个答案:

答案 0 :(得分:0)

这可能是因为您的FQL查询中没有ORDER BY子句。

尝试使用以下内容:

SELECT pid, src FROM photo WHERE aid = '{album id}' ORDER BY modified

这将确保返回的顺序始终相同(假设在查询之间没有修改图像)。