AsyncTask正在管理一个包含5个核心线程的线程池。一旦我们开始使用AsyncTask,它将开始在Android手机上设置这个线程池。
我不想使用AsyncTask的原因是因为我要创建一个服务,并从服务启动线程,这意味着任务的UI更新不多。 但是,必须在UI线程上创建并执行asynctask。
所以我将创建另一个不同的线程池,用于管理这种线程。我担心的是,如果我创建另一个包含5个核心线程的线程池,那么在android上运行的线程是否太多(10个核心线程)?会减慢它并导致糟糕的表现吗?
感谢。
答案 0 :(得分:0)
正如Alex所说,你需要使用方法executeOnExecutor()
来启动你自己的执行者。
http://developer.android.com/reference/android/os/AsyncTask.html#executeOnExecutor%28java.util.concurrent.Executor,%20Params...%29
似乎有很多陷阱,所以请仔细阅读AsyncTask
的整个页面。
是的,您可以创建自己的ThreadPoolExecutor
并将其与AsyncTask
一起使用。
还要检查一下,