如何顺序调用AsyncTask

时间:2014-12-08 13:59:49

标签: android if-statement android-asynctask controls

我有4个AsyncTask从服务器更新我的数据库,但每个数据库都有相当多的数据,所以我想在最后一个数据库结束后启动每个Asynctask,

点击一个按钮,我尝试了“IF”,但我没有成功,所以我在这里发布我的代码让你们帮助我...

“我只是试图这样做,但是eclipse没有编译这段代码,因为这是错误的,所以因为我认为我的知识限制,就像任何解决方案一样?”

atualiza_base = (Button) findViewById(R.id.update_button);
    atualiza_base.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            new callServiceCliente().execute();
            if (calServiceCliente().getStatus == FINISHED) {
                new callServiceMaterial().execute();
            }else if (callServiceMaterial().getStatus == FINISHED) {
                new callServiceProblema().execute();
            }else if (callServiceProblema().getStatus == FINISHED) {
                new callServiceProcedencia().execute();
                Toast.makeText(this, "Database Updated", Toast.LENGTH_LONG).show();
            } 

非常感谢...

2 个答案:

答案 0 :(得分:2)

在每个AsyncTask类中,调用onPostExecute方法中的下一个AsyncTask。

答案 1 :(得分:2)

点击按钮首先开始AsyncTask,然后点击每个AsyncTask onPostExecute()方法(最后AsyncTask除外)执行下一个AsyncTask 。这将解决您的问题。

确保您在 doInBackground()方法中处理了异常,以便调用 onPostExecute()