db上的find没有完成,所以从不调用FindCallback.done()方法,没有错误,没有,只是没有被调用。这是代码
ParseQuery<ParseObject> pq = ParseQuery.getQuery("Category").setLimit(1);
pq.getFirstInBackground(new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
throw new RuntimeException();
}
});
我可以看到这部分代码之前和之后的打印件,但是从不抛出异常。拜托,我真的需要帮助。
编辑:我在此之前使用parse-login并且它正常工作,即使saveInBackground()正常工作,我发现的唯一问题是关于查询,(find,getfirst ecc)。
答案 0 :(得分:1)
已经解决了,我发现Parse提供的后台功能如果在你的活动中有片段就不起作用,所以你必须自己实现它们。唯一奇怪的事实是,在一开始,一些函数(如上所述的saveInBackground)工作。
答案 1 :(得分:0)
你的意思:
ParseQuery<ParseObject> pq = ParseQuery.getQuery("Category").setLimit(1);
pq.findInBackground(new FindCallback< ParseObject >() {
@Override
public void done(List< ParseObject > parseObjects, ParseException e) {
// Success
} else {
e.printStackTrace();
}
答案 2 :(得分:0)
pq.getFirstInBackground(new GetCallback<ParseObject>()
仅用于返回一个对象,因此您需要帮助它归零该对象,例如特定的名称或项目。
尝试添加pq.whereEqualTo("item", biscuit);
。
如果要返回对象列表,则需要使用不同的回调。 最终产品应如下所示。
ParseQuery<ParseObject> pq = ParseQuery.getQuery("Category").setLimit(1);
pq.whereEqualTo("item_key_here", "item_value_here");
pq.getFirstInBackground(new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
if(object != null){
//do stuff here
}
});