AsyncTask正在管理一个具有5个核心线程的线程池。一旦我们开始使用AsyncTask,它就会开始在安卓手机上设置这个线程池。
我不想AsyncTask的原因是因为我要创建一个服务,并从服务中启动线程,这意味着任务中没有太多的UI更新。然而,异步任务必须在UI线程上创建和执行。
因此,我将创建另一个不同的线程池,用于管理这类线程。我担心的是,如果我创建另一个有5个核心线程的线程池,会不会有太多的线程(10个核心线程)在android上运行?这会减慢它的速度并导致糟糕的性能吗?
谢谢。
发布于 2011-08-30 13:35:46
正如Alex所说,您将需要使用方法executeOnExecutor()来启动您自己的执行器。http://developer.android.com/reference/android/os/AsyncTask.html#executeOnExecutor%28java.util.concurrent.Executor,%20Params...%29
似乎有许多陷阱,所以请仔细阅读AsyncTask的整个页面。
所以,是的,您可以创建自己的ThreadPoolExecutor并在AsyncTask中使用它。
再看看这个,
https://stackoverflow.com/questions/7239045
复制相似问题