2015-09-20 16 views
0

我在Parse.com上查詢我的數據庫,有時查詢返回一個空列表,有時它實際上會抓取我想要的數據。 我無法理解爲什麼在沒有改變的數據庫上運行完全相同的查詢有時會返回我想要的結果和其他時間。Andrdoid,Parse.com:相同的分析查詢有時候什麼都不返回

以下是我正在運行查詢的一個例子:

ParseQuery<Answer> answerParseQuery = ParseQuery.getQuery("Answer"); 
    answerParseQuery.whereEqualTo(Constants.kQollegeAnswerQuestionKey, curQuestion); 
    answerParseQuery.findInBackground(new FindCallback<Answer>() { 
     @Override 
     public void done(List<Answer> list, ParseException e) { 
      options.addAll(list); 
     } 
    }); 

我確信,每次我運行它curQuestion是一樣的。

可能會發生什麼,有時候返回的列表是空的,而其他時候列表包含我想要的解析對象?

回答

0

嘗試使用find()而不是findInBackground(),因爲它在異步後臺運行線程返回空列表有時和其他時間通常不會。

ParseQuery<Answer> answerParseQuery = ParseQuery.getQuery("Answer"); 
    answerParseQuery.whereEqualTo(Constants.kQollegeAnswerQuestionKey, curQuestion); 
    answerParseQuery.find(new FindCallback<Answer>() { 
     @Override 
     public void done(List<Answer> list, ParseException e) { 
      options.addAll(list); 
     } 
    }); 
+0

我不認爲這是問題,因爲我所做的任何事情都是在done函數中。 我在內部設置了一個斷點,並且有時看到列表大小爲0。 我會盡力回報 – Pseduosance

+0

但是您的訪問選項列出'done()'函數之外,這是在主線程 –

+0

Acrtally,我不是。爲了這個例子,我只是把它說出來。我所要做的一切都是在完成塊內完成的 – Pseduosance

相關問題