2012-09-07 53 views

回答

1

我理解的AsyncTask的方式,你應該從主應用程序線程,它創建一個單獨的線程,其中「doInBackground()」運行運行它。現在,如果您在另一個AsyncTask中運行嵌套的AsyncTask,則至少有三個線程總數:主應用程序線程,第一個AsyncTask線程和第二個AsyncTask線程。它們將全部並行運行,這打破了「嵌套」的概念。 我相信最好的方法是重構你的代碼只使用一個AsyncTask。

+1

你說得對,應該總是從主線程調用AsyncTask。另外,由於Honeycomb,AsyncTasks不再從線程池中提取,而是在同一個線程上按順序執行。所以,即使OP沒有爲嵌套他的AsyncTasks發生錯誤,內部的一個也不會執行,直到在較新的設備上完成外部處理之後。 http://developer.android.com/reference/android/os/AsyncTask.html – MattDavis

相關問題