我在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 :(得分: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);
}
});