AsyncTask中執行完doInBackground不執行onPostExecute

在項目中遇到一個很奇怪的問題, 在做軟件升級檢查的時候,調用到AsyncTask,在android2.3,android2.2  ....(小於android2.3版本系統) 發現跑完doInBackground回調函數之後, 程序不再往下運行onPostExecute了; 但是如果程序運行在android4.0以後的版本上面, 是可以正常運行onPostExecute回調函數的。

在網上看了半天, 有說是因爲doInBackground中有異常沒有捕捉,但是發現即使只在裏面加入打印log信息,還是同樣的結果, doInBackground運行完成後,onPostExecute依然沒有運行。

經過大半天的折騰發現問題出在調用的方式上, 我不是在UI主線程中調用AsynTask,而是在主線程中另啓線程調用AsynTask因而導致的問題, 放在主線程中調用就沒有問題了。

另外, 經過這次, 發現運在線程內調用AsyncTask還是可以正常在android4.0以後版本下運行,說明源碼部分做了一些改動, 有興趣的朋友可以研究一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章