2012-03-15 71 views
2

是android異步任務緩慢還是我做錯了什麼?android異步任務很慢嗎?

這裏是我做什麼

Log.e("Filler", "before"); 
new DownloadListContent().execute("string"); 
Log.e("Filler", "after"); 

和DownloadListContent()..

class DownloadListContent extends AsyncTask<Object, Object, Object> { 
    protected Void doInBackground(Object... urls) {    
    Log.e("Filler", "Am in doInBackground"); 

.... 
} 

這裏是logcat的。

03-15 23:18:**47**.598: E/Filler(17150): before 
03-15 23:18:**47**.598: E/Filler(17150): after 
03-15 23:18:**59**.789: E/Filler(17150): Am in doInBackground 

這是在發生背景之前的12秒。 這是爲什麼發生?

同時,我還有其他其他類別的其他實例做一些其他的網絡工作。 AsyncTask是否會影響另一個?

我真的不知道這一個!

UPDATE

謝謝你的意見。似乎異步對多少個線程同時運行有很大的限制。這是一個殺手,如果你必須同時下載一堆圖像與你的數據。

以下CommonsWare的方法here我可以分離asyncTask的類型,以便一種類型(圖像)不會阻塞其他類型(列表數據)。

+0

是一個實際的電話或在模擬器上?模擬器速度很慢,這取決於您的計算機硬件。 – 2012-03-15 23:30:08

+0

不,我在HTC Desire.12上測試時間太慢了!是否有限制同時允許多少個異步任務運行? – weakwire 2012-03-15 23:31:53

+2

顯示您的班級所有代碼。請記住,只有很多資源才能獲得CPU,內存甚至帶寬(可根據位置或WiFi上的不同而變化)。您可能會發現此任務正在等待其他人完成,然後才能訪問與網絡相關的事物,但這是一個猜測,不是事實,因爲我們需要更多的代碼。 – 2012-03-15 23:45:02

回答