2011-05-06 67 views
0

嘿, 因此,我是Android的新手,並試圖通過創建一個使其成爲新線程的包裝類來實現具有大量代碼行的類。在這個活動中,它調用了一堆其他類,而當我的UI線程加載正常時,我認爲我的計算線程超時或有其他一些形式的失敗,因爲當我運行它時,我得到ANR對話。爲了看看它在多大程度上失敗了,我在我的一個內部類中加入了一個println,它似乎很早就失敗了。 AsyncTasks有沒有時間限制?或者我可能做錯了什麼,導致它崩潰?任何意見是非常感謝。Android如何讓我的AsyncTask失敗

回答

0

不,沒有時間限制。但是當你做一些長期工作時,你應該仔細觀察你使用的方法。 AsyncTask有一個方法doInBackground從工作者線程調用,並從UI線程進行其他調用。如果你得到ANR,那意味着你在UI線程中做了你的工作,這是錯誤的。您應該在doInBackground方法中執行此操作。

結賬AsyncTask documentationPainless Threading article

0

Cody如果我不得不進行調試,我會將整個doInBackground包裝在try catch異常e中,並執行Log.d(TAG,「doInBackground」,e)。馬爾科姆是正確的,這不應該導致ANR消息,除非你以某種方式阻止UI線程。

相關問題