每个IntentService都有自己的后台线程吗?

时间:2014-05-16 17:23:00

标签: android

显然,所有AsyncTask共享一个帖子:

  

从HONEYCOMB开始,任务在单个线程上执行,以避免因并行执行而导致的常见应用程序错误。

IntentService获取一个帖子并依次处理每个Intent

  

所有请求都在一个工作线程上处理 - 它们可能需要多长时间(并且不会阻止应用程序的主循环),但一次只能处理一个请求。

但是如果我有多个IntentService s,每个都有自己的线程吗?或者Android只使用一个所有IntentService共享的线程?

1 个答案:

答案 0 :(得分:3)

  

显然,所有AsyncTasks共享一个线程:

默认情况下,是的。使用executeOnExecutor()选择加入线程池。在the documentation中,引用后的下一段是:

  

如果您真的想要并行执行,可以使用THREAD_POOL_EXECUTOR调用executeOnExecutor(java.util.concurrent.Executor,Object [])。

  

但是如果我有多个IntentServices,每个都有自己的线程吗?

是。 source code to IntentService表示它在HandlerThread中创建了自己的onCreate()