2012-08-08 64 views

回答

2

據我所見,LogCat消息按正確順序排列。

問題可能在於,您的AsyncTask無法取消。在AsyncTask上調用Cancel()不是一種保證取消的方法。您可以使用參數boolean mayInterruptIfRunning爲true。然而,即使將它設置爲true,它也從來沒有爲我工作過。

如果AsyncTask被取消或沒有取消,您可以檢查onCancelled()方法。如果控制達到此方法,則意味着它被取消。
看看thisthis問題的答案。

+0

查看我的編輯。即使'cancel(false)'的返回值爲true,我也會看到'onPostExecute'被調用。 – 2012-08-08 18:01:10

+0

「如果調用成功,並且調用cancel時該任務還沒有開始,那麼這個任務不應該運行,如果任務已經啓動,那麼mayInterruptIfRunning參數確定執行這個任務的線程是否應該被中斷以試圖停止任務「 – noob 2012-08-09 05:35:24

+1

因此,如果你調用cancel(false),並且任務已經開始,它將不會停止。然而,在這種情況下,cancel()的返回值沒有意義,儘管他們在文檔中寫了什麼,但它從來沒有用於我。相反,你應該嘗試取消(真)。 – noob 2012-08-09 05:36:54