2013-05-14 52 views
-1

我正在开发一个包含facebook集成的android应用程序。如果我执行多个fql查询,我将以变更的顺序获得响应。Android集成Facebook - 以改变的顺序获得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循环完成后调用。因为我得到了无序回应(即)将第一张专辑照片作为最后或中间回复。可能是什么问题。为什么我得到无序的回应。

+0

我可以知道我为什么被拒绝投票吗?那么只有我可以改善我的问题。 – Manoj 2013-05-14 05:31:50

回答

0

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

尝试使用类似:

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

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