在AsyncTask中同时启动多个http请求无法正常工作

时间:2013-07-31 10:49:58

标签: php android multithreading android-asynctask httprequest

每次启动我的应用程序时,我都需要运行几个php脚本,如下所示:

//runScript1
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("_name",_NAME));
params.add(new BasicNameValuePair("_id",_ID));
JSONObject json = jsonParser.makeHttpRequest(ScriptURL, "POST", params);

现在我在AsyncTask中这样做,但我不确定它是否是一个好方法:

    public class ReadBadgesDatabaseAsyncTask extends
        AsyncTask<Void, Integer, Void> {

            @Override
            protected void onPostExecute(Void result) { 
                //do stuff like Log.i(result of script1, script 2...)
            }

            @Override
            protected Void doInBackground(Void... params) {

                if (condition 1) runScript1();
                if (condition 2) runScript2();
                if (condition 3) runScript3();
                if (condition 4) runScript4();
                if (condition 5) runScript5();
                //it is not else if! these will run anyway!
            }
}

我不能将这些脚本放在一起(因此作为一个httprequest运行),因为条件足够敏感,不允许我这样做。但是,这现在有效我不确定这是最好的解决方案。我真的不知道这些脚本的运行顺序,有时当我在onPostExecute()中记录结果时,脚本还没有准备好,我没有得到正确的结果。我该怎么解决这个问题?

0 个答案:

没有答案