Asynctask状态始终显示正在运行

时间:2011-12-01 06:35:59

标签: android android-asynctask

我想在完成第一个任务后执行asynctask。但是当打印第一个任务的状态时,它总是显示RUNNING。如果并行执行两个任务,则只执行较小的任务。我正在运行oncreate方法。任何想法?

这是我的代码示例

public class test extends Activity 
 {

    ExecuteTask1 task1; 
    ExecuteTask2 task2; 
 @Override
public void onCreate(Bundle savedInstanceState)
     {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

            task1 = new ExecuteTask1();
            task1.execute(token);
            System.out.println(task1.getStatus());
            if(task1.getStatus() ==AsyncTask.Status.FINISHED)
            {
                task2 = new ExecuteTask2();
                task2.execute(token);
            }

     }
}

3 个答案:

答案 0 :(得分:4)

现在在您的代码中,您没有给task1时间完成。从task1的onPostExecute方法启动task2。 (您必须修改ExecuteTask1类中的代码才能使其生效。)

或者,让task1在onPostExecute中回复您的活动(或向其发送消息),以便您的活动可以启动任务2。

答案 1 :(得分:1)

这是因为您在启动后立即获得task1状态 - 您需要使用handler或其他方式从第一个onPostExecute()调用第二个AsyncTask。

答案 2 :(得分:0)

AsyncTask get方法正在阻塞。 然后,您还可以撰写task1.get(),然后task2.execute()。这样,您可以在AsyncTask实现中删除task1与task2的依赖关系