Android解析SDK问题

Android解析SDK问题,android,parse-platform,Android,Parse Platform,我正在使用parse来存储数据,并在使用程序时进行大量查询。 问题是,在大约+/-20次类似的查询之后,parse findInBackground或getFirstInBackground不会返回回调,应用程序会卡在该位置 我的查询代码: ParseQuery<OptionCodeDTO> mQuery; mQuery = ParseQuery.getQuery(OptionCodeDTO.class); mQuery.whereEqualTo("code", pr

我正在使用parse来存储数据,并在使用程序时进行大量查询。 问题是,在大约+/-20次类似的查询之后,parse findInBackground或getFirstInBackground不会返回回调,应用程序会卡在该位置

我的查询代码:

ParseQuery<OptionCodeDTO> mQuery;
    mQuery = ParseQuery.getQuery(OptionCodeDTO.class);
    mQuery.whereEqualTo("code", prCode);
    mQuery.getFirstInBackground(new GetCallback<OptionCodeDTO>() {
        @Override
        public void done(OptionCodeDTO optionCodeDTO, ParseException e) {
            if (isVisible()) {
                if (e == null) {
                    OptionCode opCode = new OptionCode(optionCodeDTO);
                    mCodes.push(opCode);
                    printCodes();
                    prDescrLayout.setVisibility(View.VISIBLE);
                    prDescProgress.setVisibility(View.GONE);
                    mPRLable.setVisibility(View.GONE);
                } else {
                    if (e.getCode() == ParseException.CONNECTION_FAILED) {
                        mPrDescr.setText(R.string.dtc_lookup_check_network);
                    } else if (e.getCode() == ParseException.OBJECT_NOT_FOUND) {
                        mPrDescr.setText(R.string.pr_lookup_code_not_found);
                    } else {
                        mPrDescr.setText(R.string.dtc_lookup_other_problems);
                    }
                    prDescrLayout.setVisibility(View.VISIBLE);
                    prDescProgress.setVisibility(View.GONE);
                }
            }
        }
    });

首先,如果您的应用程序因为UI线程依赖于后台线程而没有响应,这是不正确的体系结构

也许你必须优化你的应用程序与Parse的交互。通常,在后台进行大量存储是一种不好的做法,例如从循环内部进行存储。您可以将需要保存的对象添加到列表中,然后使用ParseObject.saveAllInBackgroundobjectList

优化的另一个想法是使用本地存储——android内置的SQLite。例如,如果您的应用程序依赖于要保存以进行解析的内容,则逻辑如下:

首先保存对象时,保存到本地数据库并运行saveInBackground方法

获取对象时,首先从本地数据库获取,然后运行getInBackground方法,该方法在回调中将信息持久化到本地数据库


这样,您的应用程序就可以在没有互联网连接的情况下使用

您运行查询的速度有多快?除非您升级了计划,否则突发限制为每秒30个请求。通过解析分析性能,我们甚至无法达到每秒2个请求