解析:在移动到下一个任务之前进行查询完成任务

时间:2014-08-23 15:37:27

标签: android parse-platform progress

这是主要的。 按钮 -

                    public void onClick(View v) {
                        dialog.show();

                        getTheMarkerId();



                        markerisfalseortrue(0);


                        dialog.hide();

                        cdd.dismiss();
                    }
                });

这是第一项任务: getTheMarkerId()

    queryfindmarkerid.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> parseObjects, ParseException e) {

            for (int i = 0; i<parseObjects.size(); i++)
            {
                if (parseObjects.get(i).getInt("longit") == themarkerlongitude && parseObjects.get(i).getInt("latit") ==  themarkerlatitude)
                {
                    themarkerid = parseObjects.get(i).getObjectId();
                }
            }


        }
    });

这是第二个任务 - markerisfalseortrue(int i)

    if (i == 0)
    {
        queryfindmarkerid.getInBackground( themarkerid, new GetCallback<ParseObject>() {
            public void done(ParseObject gameScore, ParseException e) {
                if (e == null) {

                    nowscore = gameScore.getInt("false");
                    gameScore.put("false", nowscore +1 );
                    gameScore.saveInBackground();



                }
            }
        });

问题是: 此查询具有出色的网络连接。你必须等到它完成。 我怎么能等到第一个任务完成。

1 个答案:

答案 0 :(得分:1)

将方法调用markerisfalseortrue(0);放在getTheMarkerId()方法的done方法中。这样,markerisfalseortrue()方法将在第一次网络调用完成后才会运行。

这是一种常见的模式,要记住使用Parse查询方法及其回调 - 如果您需要发出第二个请求,或执行一些只能在第一次网络调用完成后才能完成的操作,请激活该操作。完成第一次网络呼叫的方法。