我想在完成第一個任務後執行一個asynctask。但是,在打印第一個任務的狀態時,它總是顯示RUNNING。如果執行兩個任務並行,則只執行較小的任務。我正在運行創建方法。任何想法?Asynctask狀態總是顯示正在運行
這裏是我的代碼示例
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);
}
}
}
感謝泰德它的工作正常。 – Reji
可能會有點偏離主題,但它可以是getStatus()返回運行,如果一個AsyncTask之前已被取消?至少這就是我現在得到的,儘管已經取消了我的AsyncTask(除非相同的任務以某種方式被自動恢復xD)。 – AgentKnopf
@Zainodis - ''asyncTask.getStatus()''確實可以在'cancel()'被調用後返回'RUNNING',並返回'true'。例如,調用'cancel()'可以在底層線程上調用'interrupt()',或者簡單地設置'AsyncTask'的isCancelled()標誌,但是'AsyncTask'的狀態會贏得'直到底層線程發現中斷或標誌值發生變化並且實際退出。這就是爲什麼文檔建議'doInBackground()'應該定期檢查isCancelled()的值和「儘早完成任務」。 –