2014-05-17 47 views
0

我正在取消當前正在運行的任務,從doInBackground內部通過調用cancel(false)發生一些異常時。重新執行AsyncTask onCancelled

因爲我打電話取消(false)它會讓當前正在運行的任務完成,然後onCancelled將被調用。 現在onCancelled裏面我想通過調用​​重新執行相同的任務,但我在​​函數調用

E/AndroidRuntime(30430): FATAL EXCEPTION: main 
java.lang.IllegalStateException: Cannot execute task: the task is already running. 

回答

3

得到下面的錯誤不能執行的AsyncTask不止一次。

您應該創建任務的新實例,如:new MyAsyncTask().execute();

0

你不能做到這一點,男人!一個AsyncTask有一個生命週期,以內部狀態表示。它只能執行一次。檢查「穿線規則」部分here

0

你應該caliing yourAsyncTask取消異步任務「的任務只能一次執行(如果第二試圖執行一個異常將被拋出。)」 .cancel(true),在執行異步任務之前,如果它已通過獲取狀態運行,您可以檢查它們。