Quiero ejecutar una asynctask después de terminar la primera tarea. Pero al imprimir el estado de la primera tarea, siempre muestra RUNNING. Si ejecuta ambas tareas en paralelo, solo se ejecutará una tarea más pequeña. Estoy ejecutando ambos en actividad en el método de creación. ¿Alguna idea?Asynctask estado que muestra siempre ejecutando
aquí es mi ejemplo de código
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);
}
}
}
Gracias Ted está funcionando bien. – Reji
Puede estar ligeramente fuera de tema, pero ¿puede ser que getStatus() devuelva la ejecución si una AsyncTask se canceló antes de oO? Al menos eso es lo que estoy recibiendo en este momento, a pesar de haber cancelado mi AsyncTask (a menos que la misma tarea esté de alguna manera siendo revivida automáticamente xD). – AgentKnopf
@Zainodis - 'AsyncTask.getStatus()' puede devolver 'RUNNING' después de que se haya llamado a' cancel() 'y devuelve' true'. La llamada a 'cancel()' puede, por ejemplo, invocar 'interrupt()' en el hilo subyacente o simplemente establecer el indicador 'isCancelled()' para 'AsyncTask', pero el estado del' AsyncTask' won ' t cambiar hasta que el hilo subyacente advierta la interrupción o cambie el valor del indicador y salga realmente. Es por eso que los documentos recomiendan que 'doInBackground()' compruebe periódicamente el valor de 'isCancelled()' y "finalice la tarea lo antes posible". –