java.lang.RuntimeException:此查询具有出色的网络连接。你必须等到它

时间:2015-08-17 18:46:44

标签: java android parse-platform

我在我的应用中启用了主题标签功能,我不确定这是否是必须实现的方式,因为我无法对其进行测试。每次我试图运行它都会崩溃。

所以我有Image类,它有关系类型的字段(标记)。 HashTags将tagName作为字符串,将img作为指向Image类的指针。

这是我开始的代码。

 final ParseQuery<ParseObject> query = ParseQuery.getQuery("Image");
            final ParseQuery<ParseObject> query1 = ParseQuery.getQuery("HashTags");

            final ParseObject tag = ParseObject.create("HashTags");

            query.getInBackground(objectId, new GetCallback<ParseObject>() {
                        public void done(final ParseObject object, ParseException e) {
                            if (e == null) {
                                final String hashTag = add_tag.getText().toString().trim();

                                String text = add_tag.getText().toString().trim();
                                String regexPattern = "(#\\w+)";

                                Pattern p = Pattern.compile(regexPattern);
                                Matcher m = p.matcher(text);
                                while (m.find()) {
                                    final String hashtag = m.group(1);


                                    if (hashtag.trim().matches("")) {
                                        object.put("location", point);
                                        object.saveInBackground(new SaveCallback() {
                                            @Override
                                            public void done(ParseException e) {
                                                if (e == null) {
                                                    done = true;
                                                    finish();
                                                }
                                            }
                                        });
                                    } else {

                                        query1.whereEqualTo("name", hashtag);

问题发生在最后一行,当[query1.whereEqualTo(&#34; name&#34;,hashtag);]

我认为因为hashtag不是单一值,所以它不止一个#标签。所以它抛出了这个错误。

任何建议如何解决?

1 个答案:

答案 0 :(得分:1)

为什么不在这个初始GetQuery中添加一个监听器,并将其余的代码放在里面,以便在完成时执行。这应该解决并发查询。

像这样的东西

query.getInBackground(new GetCallbacks(){
    onComplete(){
        final ParseQuery<ParseObject> query1 = ParseQuery.getQuery("HashTags");
        query1.getInBackground(new GetCallbacks(){
            onComplete(){
                //The rest of the code.
            }
        });
)

我目前没有任何项目可以使代码漂亮,但这是它的要点。当您尝试查看其数据时,听起来像query1仍在执行,您应该将getInBackground匿名内部类链接在一起。通过这样做,您确保在query1完成或失败后执行其余代码。