2011-08-30 91 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

相关问题