2013-05-14 69 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

這將確保返回的順序始終是相同的(假定沒有圖像在中間修改查詢)。