解析findInBackground不起作用

时间:2014-12-02 16:52:52

标签: android parse-platform

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)。

3 个答案:

答案 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

    }



});