在Android平台中,Service和IntentService有什么区别?

823

我正在寻找一个例子,说明使用IntentService可以做到的事情,而使用Service则无法做到(反之亦然)?

我还了解到,IntentService在不同的线程中运行,而Service则不会。因此,据我所知,在其自己的线程中启动服务就像启动IntentService一样。这是正确的吗?


50
IntentService 用于短期任务(等等),而 Service 用于长期任务。你在哪里读到的? - njzk2
9
另外,我建议你阅读 IntentService 的源代码。它能清楚地展示它的作用和功能。 - njzk2
1
我在看到你的评论后编辑了我的问题。 - roiberg
9
IntentService的代码:https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/app/IntentService.java - greg7gkb
2
之前评论中的链接(由greg7gkb提供)是一篇很棒的阅读材料。 - DSlomer64
11个回答

5
ServiceIntentService之间的主要区别如下: Service: 1.默认情况下,Service运行在应用程序的主线程上(没有默认的工作者线程可用)。因此用户需要创建一个单独的线程并在该线程中执行所需的工作。
2.允许同时处理多个请求。(多线程) IntentService: 1.现在,针对IntentService,这里提供了默认的工作者线程来执行任何操作。请注意 - 您需要实现onHandleIntent()方法,该方法接收每个启动请求的意图,并在其中可以进行后台工作。
2.但它只允许一次处理一个请求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接