簡體   English   中英

android異步任務慢嗎?

[英]Is android async task slow?

android async任務慢還是我做錯了事?

這是我的工作

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

那是在后台執行do之前的12秒。 為什么會這樣呢?

同時,我讓AsyncTask的其他類的其他實例完成其他一些網絡工作。 AsyncTask是否會互相影響?

我真的不知道那一個!

UPDATE

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

這里遵循CommonsWare的方法我可以分隔asyncTask的類型,以使一種類型(圖像)不會阻止另一種類型(列表數據)。

是的,它的線程池確實有限。 在Honeycomb上,池大小為1,因此您不能同時執行兩個任務。 但是,您可以提供自己的執行程序,以並行運行多個任務。 但是,這可能不會提高性能,因此您可能應該考慮重新構造代碼:

http://developer.android.com/reference/android/os/AsyncTask.html#executeOnExecutor(java.util.concurrent.Executor,Params ...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM