2011-08-30 94 views
1

的AsyncTask的管理與5個核心線程的線程池。一旦我們開始使用AsyncTask,它就會開始在android手機上設置這個線程池。我們可以創建兩個在android上運行的ThreadPoolExecutor嗎?

我之所以不想的AsyncTask是因爲我要創建服務,並從服務,這意味着沒有從多任務UI更新啓動線程。 但是,asynctask必須在UI線程上創建並執行。

所以我要創建將用於管理這種線程的另一個不同的線程池。我所擔心的是,如果我創建5個核心線程另一個線程池,這樣的結果會有太多的線程(10個核心線程)在Android上運行?會減慢速度並導致性能不佳?

謝謝。

回答

0

正如亞歷克斯說,你將需要使用方法executeOnExecutor()用自己的遺囑執行人啓動它。 http://developer.android.com/reference/android/os/AsyncTask.html#executeOnExecutor%28java.util.concurrent.Executor,%20Params...%29

似乎有一些陷阱,所以仔細閱讀AsyncTask的整個頁面。

所以,是的,你可以創建自己的ThreadPoolExecutorAsyncTask使用它。

而且還要檢查這個,

Using ThreadPoolExecutor and AsyncTask

+0

無論使用的AsyncTask executeOnExecutor()或執行(),他們都將不得不在UI thread.If運行我要運行從後臺這項任務線程,你會怎麼做到這一點?謝謝。 – Usher

相關問題